镜像构建历史
# 2026-09-02 06:39:33 0.00B 配置容器启动时运行的命令
ENTRYPOINT ["./entrypoint.sh"]
# 2026-09-02 06:39:33 0.00B 指定检查容器健康状态的命令
HEALTHCHECK {Test:[CMD-SHELL node /healthcheck.js] Interval:0s Timeout:0s StartPeriod:0s StartInterval:0s Retries:0}
# 2026-09-02 06:39:33 0.00B 声明容器运行时监听的端口
EXPOSE [1880/tcp]
# 2026-09-02 06:39:33 0.00B 设置环境变量 NODE_RED_VERSION NODE_PATH PATH FLOWS
ENV NODE_RED_VERSION=v5.0.6 NODE_PATH=/usr/src/node-red/node_modules:/data/node_modules PATH=/usr/src/node-red/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin FLOWS=flows.json
# 2026-09-02 06:39:33 0.00B 指定运行容器时使用的用户
USER node-red
# 2026-09-02 06:39:33 1.07MB 执行命令并创建新的镜像层
RUN |6 BUILD_DATE=2026-09-01T22:38:10Z BUILD_VERSION=5.0.6 BUILD_REF= NODE_RED_VERSION=v5.0.6 ARCH= TAG_SUFFIX=-debian /bin/sh -c npm config set cache /data/.npm --global # buildkit
# 2026-09-02 06:39:32 442.92MB 执行命令并创建新的镜像层
RUN |6 BUILD_DATE=2026-09-01T22:38:10Z BUILD_VERSION=5.0.6 BUILD_REF= NODE_RED_VERSION=v5.0.6 ARCH= TAG_SUFFIX=-debian /bin/sh -c chown -R node-red:root /usr/src/node-red && apt-get update && apt-get install -y build-essential python3-dev python3 && rm -r /tmp/* # buildkit
# 2026-09-02 06:39:14 92.75MB 复制新文件或目录到容器中
COPY /usr/src/node-red/prod_node_modules ./node_modules # buildkit
# 2026-09-02 06:39:14 0.00B 添加元数据标签
LABEL org.label-schema.build-date=2026-09-01T22:38:10Z org.label-schema.docker.dockerfile=.docker/Dockerfile.debian org.label-schema.license=Apache-2.0 org.label-schema.name=Node-RED org.label-schema.version=5.0.6 org.label-schema.description=Low-code programming for event-driven applications. org.label-schema.url=https://nodered.org org.label-schema.vcs-ref= org.label-schema.vcs-type=Git org.label-schema.vcs-url=https://github.com/node-red/node-red-docker org.opencontainers.image.source=https://github.com/node-red/node-red-docker org.label-schema.arch= authors=Dave Conway-Jones, Nick O'Leary, James Thomas, Raymond Mouthaan
# 2026-09-02 06:39:14 0.00B 定义构建参数
ARG TAG_SUFFIX=-debian
# 2026-09-02 06:39:14 0.00B 定义构建参数
ARG ARCH
# 2026-09-02 06:39:14 0.00B 定义构建参数
ARG NODE_RED_VERSION=v5.0.6
# 2026-09-02 06:39:14 0.00B 定义构建参数
ARG BUILD_REF=
# 2026-09-02 06:39:14 0.00B 定义构建参数
ARG BUILD_VERSION=5.0.6
# 2026-09-02 06:39:14 0.00B 定义构建参数
ARG BUILD_DATE=2026-09-01T22:38:10Z
# 2026-09-02 06:38:40 226.00B 复制新文件或目录到容器中
COPY .docker/scripts/entrypoint.sh . # buildkit
# 2026-09-02 06:38:40 1.37KB 复制新文件或目录到容器中
COPY flows.json /data # buildkit
# 2026-09-02 06:38:40 1.01KB 复制新文件或目录到容器中
COPY package.json . # buildkit
# 2026-09-02 06:38:40 1.70KB 执行命令并创建新的镜像层
RUN /bin/sh -c echo "PubkeyAcceptedKeyTypes +ssh-rsa" >> /etc/ssh/ssh_config # buildkit
# 2026-09-02 06:38:40 4.72KB 执行命令并创建新的镜像层
RUN /bin/sh -c ./known_hosts.sh /etc/ssh/ssh_known_hosts && rm /usr/src/node-red/known_hosts.sh # buildkit
# 2026-09-02 06:38:30 2.87KB 复制新文件或目录到容器中
COPY .docker/known_hosts.sh . # buildkit
# 2026-09-02 06:38:30 0.00B 设置工作目录为/usr/src/node-red
WORKDIR /usr/src/node-red
# 2026-09-02 06:38:30 137.34MB 执行命令并创建新的镜像层
RUN /bin/sh -c set -ex && apt-get update && apt-get install -y bash tzdata curl nano wget git openssl openssh-client ca-certificates iputils-ping && mkdir -p /usr/src/node-red /data && deluser --remove-home node && useradd --home-dir /usr/src/node-red --uid 1000 node-red && chown -R node-red:root /data && chmod -R g+rwX /data && chown -R node-red:root /usr/src/node-red && chmod -R g+rwX /usr/src/node-red # buildkit
# 2026-09-02 06:38:18 879.00B 复制新文件或目录到容器中
COPY .docker/healthcheck.js / # buildkit
# 2026-09-02 06:38:18 751.00B 复制新文件或目录到容器中
COPY .docker/scripts/*.sh /tmp/ # buildkit
# 2026-08-28 01:03:46 0.00B 设置默认要执行的命令
CMD ["node"]
# 2026-08-28 01:03:46 0.00B 配置容器启动时运行的命令
ENTRYPOINT ["docker-entrypoint.sh"]
# 2026-08-28 01:03:46 388.00B 复制新文件或目录到容器中
COPY docker-entrypoint.sh /usr/local/bin/ # buildkit
# 2026-08-28 01:03:46 7.25MB 执行命令并创建新的镜像层
RUN /bin/sh -c set -ex && savedAptMark="$(apt-mark showmanual)" && apt-get update && apt-get install -y ca-certificates curl wget gnupg dirmngr --no-install-recommends && rm -rf /var/lib/apt/lists/* && export GNUPGHOME="$(mktemp -d)" && for key in 6A010C5166006599AA17F08146C2130DFD2497F5 ; do { gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$key" && gpg --batch --fingerprint "$key"; } || { gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" && gpg --batch --fingerprint "$key"; } ; done && curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz" && curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz.asc" && gpg --batch --verify yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz && gpgconf --kill all && rm -rf "$GNUPGHOME" && mkdir -p /opt && tar -xzf yarn-v$YARN_VERSION.tar.gz -C /opt/ && ln -s /opt/yarn-v$YARN_VERSION/bin/yarn /usr/local/bin/yarn && ln -s /opt/yarn-v$YARN_VERSION/bin/yarnpkg /usr/local/bin/yarnpkg && rm yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz && apt-mark auto '.*' > /dev/null && { [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark > /dev/null; } && find /usr/local -type f -executable -exec ldd '{}' ';' | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' | sort -u | xargs -r dpkg-query --search | cut -d: -f1 | sort -u | xargs -r apt-mark manual && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false && yarn --version && rm -rf /tmp/* # buildkit
# 2026-08-28 01:03:31 0.00B 设置环境变量 YARN_VERSION
ENV YARN_VERSION=1.22.22
# 2026-08-28 01:03:31 156.06MB 执行命令并创建新的镜像层
RUN /bin/sh -c ARCH= OPENSSL_ARCH= && dpkgArch="$(dpkg --print-architecture)" && case "${dpkgArch##*-}" in amd64) ARCH='x64' OPENSSL_ARCH='linux-x86_64';; ppc64el) ARCH='ppc64le' OPENSSL_ARCH='linux-ppc64le';; s390x) ARCH='s390x' OPENSSL_ARCH='linux*-s390x';; arm64) ARCH='arm64' OPENSSL_ARCH='linux-aarch64';; *) echo "unsupported architecture"; exit 1 ;; esac && set -ex && apt-get update && apt-get install -y ca-certificates curl wget gnupg dirmngr xz-utils libatomic1 --no-install-recommends && rm -rf /var/lib/apt/lists/* && export GNUPGHOME="$(mktemp -d)" && for key in 5BE8A3F6C8A5C01D106C0AD820B1A390B168D356 DD792F5973C6DE52C432CBDAC77ABFA00DDBF2B7 CC68F5A3106FF448322E48ED27F5E38D5B0A215F 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 890C08DB8579162FEE0DF9DB8BEAB4DFCF555EF4 C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C 108F52B48DB57BB0CC439B2997B01419BD92F80A 655F3B5C1FB3FA8D1A0CA6BDE4A7D232B936D2FD A363A499291CBBC940DD62E41F10027AF002F8B0 ; do { gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$key" && gpg --batch --fingerprint "$key"; } || { gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" && gpg --batch --fingerprint "$key"; } ; done && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH.tar.xz" && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" && gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc && gpgconf --kill all && rm -rf "$GNUPGHOME" && grep " node-v$NODE_VERSION-linux-$ARCH.tar.xz\$" SHASUMS256.txt | sha256sum -c - && tar -xJf "node-v$NODE_VERSION-linux-$ARCH.tar.xz" -C /usr/local --strip-components=1 --no-same-owner && rm "node-v$NODE_VERSION-linux-$ARCH.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt && find /usr/local/include/node/openssl/archs -mindepth 1 -maxdepth 1 ! -name "$OPENSSL_ARCH" -exec rm -rf {} \; && apt-mark auto '.*' > /dev/null && find /usr/local -type f -executable -exec ldd '{}' ';' | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' | sort -u | xargs -r dpkg-query --search | cut -d: -f1 | sort -u | xargs -r apt-mark manual && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false && ln -s /usr/local/bin/node /usr/local/bin/nodejs && node --version && npm --version && rm -rf /tmp/* # buildkit
# 2026-08-28 01:03:31 0.00B 设置环境变量 NODE_VERSION
ENV NODE_VERSION=24.20.0
# 2026-08-28 01:03:08 8.90KB 执行命令并创建新的镜像层
RUN /bin/sh -c groupadd --gid 1000 node && useradd --uid 1000 --gid node --shell /bin/bash --create-home node # buildkit
# 2026-08-24 08:00:00 78.64MB
# debian.sh --arch 'amd64' out/ 'trixie' '@1787529600'
镜像信息
{
"Id": "sha256:2f37a6781ccc8062cb3fba55659aac8bdfceed389b915f1f37ad5802b2399dca",
"RepoTags": [
"nodered/node-red:5-debian",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/nodered/node-red:5-debian"
],
"RepoDigests": [
"nodered/node-red@sha256:2f68bf2cf7333785e47864cb996ace192c5fe0907db2e50bf5a0f3faf3d610d2",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/nodered/node-red@sha256:0d3960c30b093c316d4eed69a9bc128efd2f12cb51f81d8fdb933c4254240fcb"
],
"Parent": "",
"Comment": "buildkit.dockerfile.v0",
"Created": "2026-09-01T22:39:33.391714352Z",
"Container": "",
"ContainerConfig": null,
"DockerVersion": "",
"Author": "",
"Config": {
"Hostname": "",
"Domainname": "",
"User": "node-red",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"1880/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/src/node-red/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"NODE_VERSION=24.20.0",
"YARN_VERSION=1.22.22",
"NODE_RED_VERSION=v5.0.6",
"NODE_PATH=/usr/src/node-red/node_modules:/data/node_modules",
"FLOWS=flows.json"
],
"Cmd": null,
"Healthcheck": {
"Test": [
"CMD-SHELL",
"node /healthcheck.js"
]
},
"Image": "",
"Volumes": null,
"WorkingDir": "/usr/src/node-red",
"Entrypoint": [
"./entrypoint.sh"
],
"OnBuild": null,
"Labels": {
"authors": "Dave Conway-Jones, Nick O'Leary, James Thomas, Raymond Mouthaan",
"org.label-schema.arch": "",
"org.label-schema.build-date": "2026-09-01T22:38:10Z",
"org.label-schema.description": "Low-code programming for event-driven applications.",
"org.label-schema.docker.dockerfile": ".docker/Dockerfile.debian",
"org.label-schema.license": "Apache-2.0",
"org.label-schema.name": "Node-RED",
"org.label-schema.url": "https://nodered.org",
"org.label-schema.vcs-ref": "",
"org.label-schema.vcs-type": "Git",
"org.label-schema.vcs-url": "https://github.com/node-red/node-red-docker",
"org.label-schema.version": "5.0.6",
"org.opencontainers.image.source": "https://github.com/node-red/node-red-docker"
}
},
"Architecture": "amd64",
"Os": "linux",
"Size": 916049194,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/6b6871f1e639274d83a0cd528cc0a13583194cc01e636c03266fb6ce3a9257c1/diff:/var/lib/docker/overlay2/53edfa54835abe86109aa0f1e9f0dad4f8051942c715644a13ff5ba3bbc51d83/diff:/var/lib/docker/overlay2/183828bf3aba67f2447d3cdfda2f7028c63c8d80de7a4503afe236d746340174/diff:/var/lib/docker/overlay2/2c168b0613adfbba72ba43101c640732352a443964746310f0ec4247a2dabc71/diff:/var/lib/docker/overlay2/08bd92e757c8d3774d136e6fb1f26bb307bb2ce654378e1da4ade6367a1d3290/diff:/var/lib/docker/overlay2/a95025286fb494424128a68e9c6337b6f5b3eb0e53352ec0b799ad4fbdc0de0e/diff:/var/lib/docker/overlay2/d1e46509cc8523a30ee216ac73b3462814212b9786e2b2bcbf5b2b8e0f388a56/diff:/var/lib/docker/overlay2/5896da15a5cf40c5f48e81881d7c4c9c5468d733def25120e48d6d618d48d6ce/diff:/var/lib/docker/overlay2/65beb689703436f8dbb93964dc499305a3985a8c2d7652f7922304129efff22c/diff:/var/lib/docker/overlay2/dbd3d1f89d96ce9b9c192b6d2c01f755a2110186188ad2b56dfcad139d4378ad/diff:/var/lib/docker/overlay2/abcf848b33ced6b8b7b91fa95b0f91a193a7bc5d065c696c9dbffcc319498313/diff:/var/lib/docker/overlay2/a6e09965bda9a870ce22769a908afd9ec8c2a863f0152664c810e6efeb4c319f/diff:/var/lib/docker/overlay2/a88746cb8fbf68fdaec7b0b384d0d90e02fabf8de5367dafac632b1a687a7910/diff:/var/lib/docker/overlay2/c9a55b909b4a8850fa535048c62dbc86206b74bc7dc25c59edabbae3da407d86/diff:/var/lib/docker/overlay2/a77a24579e9974d24557ca1d707b41ef1bc13173f9b823f3571d5eb80e722a4d/diff:/var/lib/docker/overlay2/d30e3d235ae5722ab823eabe68220d3ed9c0597de64a15a0959127ce68e18612/diff:/var/lib/docker/overlay2/c2a696dacdcd5b8480d9f883645aef5d7f18bb808ab62a8bfbe4920c17c72905/diff",
"MergedDir": "/var/lib/docker/overlay2/1bf90df8ed06a8da4d7d8332079b9b0aa5229e341e0b8944c9c7abe8a2f4dba7/merged",
"UpperDir": "/var/lib/docker/overlay2/1bf90df8ed06a8da4d7d8332079b9b0aa5229e341e0b8944c9c7abe8a2f4dba7/diff",
"WorkDir": "/var/lib/docker/overlay2/1bf90df8ed06a8da4d7d8332079b9b0aa5229e341e0b8944c9c7abe8a2f4dba7/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:411a86676185cb54d695a805b238194a64e9b77e0c723f3802fbb87d333ea0b3",
"sha256:f85cd3e423cf3c2893843c2a1aea3881a38212f48809a9fa9c627fcd9a37807a",
"sha256:8b887330c7825ecb6c35e7b2a83806ac39e3fcf8994a9c5fce2d08b6560dcb4c",
"sha256:f3915d012571a3eca1a73235580269b854fea71428254350f89ffaf2b26ada90",
"sha256:7f54e7015e49d2f0b31878dfbf3d7fc78ee21524bf3bfa843f129028b3cabc70",
"sha256:3603c007cd8deca04d9cd525ae40b1711493deb0f47578b4bb1e8e4d85e6757f",
"sha256:f87bfe011e4e193c61585c1dd50154cb24ed5be10f460715f95f73cf01804e07",
"sha256:d1925f5b984880a234e32fd1cb9592438c7e8269dd55253b2d211630d606f474",
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
"sha256:04bdf8f83d4078107d6920f87dbd56687070e1286ca675666e0b71c7b41d7af6",
"sha256:5429959f63e2c33a45f90ea82ff3dc1cac5e4fd9f38fdea624c22f64da32814b",
"sha256:e5a36ef869ac18c3f08e304d5a139cc697f74c910291cdca49291391eed52766",
"sha256:9ff847d48608e6b2dbd4e26f67f560b18a2c7477d803f41fa483c94b619aedf9",
"sha256:57fdaf8c760577b3f29a73333a5f5651b394b09397ae96774d57970f83972a56",
"sha256:707e9a8f21e3653484bda6478ede5494e3f4bfc7eeaf7552955d1acd35c29090",
"sha256:b424e368f9aa5e02a96bbef3a7f61138ee377b682b145fcfbca08e359ac3eaf8",
"sha256:d7ad23400fd5fd01919e7c65109467cebf80bf5d67a2d905dbf3e087e489c7f7",
"sha256:2f542e352a58d03c23a52e06ac653627775c0e66cf74883cccf7098171e52155"
]
},
"Metadata": {
"LastTagTime": "2026-09-05T15:49:19.385241634+08:00"
}
}