Namespace
nodered
Image / Tag
node-red:latest-debian
Content Digest
sha256:05462db98df22cf9aa3168e2e90d276c80cf1aa9b8c76149a70e14a34541b013
Details
Created

2025-10-13 14:30:03 UTC

Size

277 MB

Content Digest
Labels
  • authors
    Dave Conway-Jones, Nick O'Leary, James Thomas, Raymond Mouthaan
  • org.label-schema.arch
  • org.label-schema.build-date
    2025-10-13T14:28:42Z
  • 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
    4.1.1
  • org.opencontainers.image.source
    https://github.com/node-red/node-red-docker

Environment
FLOWS

flows.json

NODE_PATH

/usr/src/node-red/node_modules:/data/node_modules

NODE_RED_VERSION

v4.1.1

NODE_VERSION

20.19.5

PATH

/usr/src/node-red/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

YARN_VERSION

1.22.22


Layers

[#000] sha256:5c32499ab806884c5725c705c2bf528662d034ed99de13d3205309e0d9ef0375 - 9.72% (26.9 MB)

[#001] sha256:c236995d12f2157ee427471a193f6d4a42377289b3095093d8c86187d77f768d - 0.0% (3.23 KB)

[#002] sha256:ab9c5ae25e4db3eb06f491a7fe8df1c64545a2f2c1cdc078ae5daf3c76d916c2 - 14.11% (39.1 MB)

[#003] sha256:997b350cffa15286d430b21f1c133c4b455e74d22f03faf3cc70504d3cff87ff - 0.59% (1.63 MB)

[#004] sha256:cc663995c53d1076d7066652c9e96f9dca65a2077ef4eb7957931e264640f769 - 0.0% (443 Bytes)

[#005] sha256:d75bbeb50c29aa96a230d887c2b1080eafaed1423f9986e28b8b0f721075c8ba - 0.0% (598 Bytes)

[#006] sha256:6c9f5a613ee0911ced2acafa95b90bb27721f4769a8fbefa51c8b6cd1c1d8155 - 0.0% (465 Bytes)

[#007] sha256:656bf01e5222f7283e8544d7abb340df84d4bcf1bbd9065986a76eaa4dc53011 - 18.55% (51.4 MB)

[#008] sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 - 0.0% (32 Bytes)

[#009] sha256:06bc6e98df14f5f7991430e0f43bc93c2d6d449280c52b4859565f3ff037e7b0 - 0.0% (1.57 KB)

[#010] sha256:31d28daf15e33f3d691c297a1e44b4cc2e0e37e12337addbce74e5871de53607 - 0.0% (2.14 KB)

[#011] sha256:818f6b66dd62ae9466a8c1fd6a10f3b56074fa877f6873ccc29c544b7545127a - 0.0% (956 Bytes)

[#012] sha256:60c869d77da250d000e3d48db0b3f0f5a036ce8ad652bab5ef7dc5facbbde667 - 0.0% (592 Bytes)

[#013] sha256:560b07b5d76b4a3c46b712d726a5e6fdf7a3bf4925ad4e3c648d7ae53b64333d - 0.0% (831 Bytes)

[#014] sha256:4f03563a66879e632f7c541b66bea40424f1651ac9181efd60e550d77e655888 - 0.0% (358 Bytes)

[#015] sha256:dd7833d3dd15b6084f7c153adef99ba833549d1323a7935c1a1285982d438b4e - 6.79% (18.8 MB)

[#016] sha256:ea16ab71033789d905ee50cded0d60b9288006781f2c734ea59a7f52f496b86e - 50.23% (139 MB)

[#017] sha256:7ae9016c449d4c53bb5c28ed8027d8b920974162a2c08b62701c958671d64bd5 - 0.0% (596 Bytes)


History
2025-09-03 19:47:58 UTC (debuerreotype 0.16)

# debian.sh --arch 'amd64' out/ 'bookworm' '@1759104000'

2025-09-03 19:47:58 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c groupadd --gid 1000 node && useradd --uid 1000 --gid node --shell /bin/bash --create-home node # buildkit

2025-09-03 19:47:58 UTC (buildkit.dockerfile.v0)

ENV NODE_VERSION=20.19.5

2025-09-03 19:47:58 UTC (buildkit.dockerfile.v0)

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';; armhf) ARCH='armv7l' OPENSSL_ARCH='linux-armv4';; i386) ARCH='x86' OPENSSL_ARCH='linux-elf';; *) 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 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

2025-09-03 19:47:58 UTC (buildkit.dockerfile.v0)

ENV YARN_VERSION=1.22.22

2025-09-03 19:47:58 UTC (buildkit.dockerfile.v0)

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

2025-09-03 19:47:58 UTC (buildkit.dockerfile.v0)

COPY docker-entrypoint.sh /usr/local/bin/ # buildkit

2025-09-03 19:47:58 UTC (buildkit.dockerfile.v0)

ENTRYPOINT ["docker-entrypoint.sh"]

2025-09-03 19:47:58 UTC (buildkit.dockerfile.v0)

CMD ["node"]

2025-10-13 14:28:49 UTC (buildkit.dockerfile.v0)

COPY .docker/scripts/*.sh /tmp/ # buildkit

2025-10-13 14:28:49 UTC (buildkit.dockerfile.v0)

COPY .docker/healthcheck.js / # buildkit

2025-10-13 14:28:59 UTC (buildkit.dockerfile.v0)

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

2025-10-13 14:28:59 UTC (buildkit.dockerfile.v0)

WORKDIR /usr/src/node-red

2025-10-13 14:28:59 UTC (buildkit.dockerfile.v0)

COPY .docker/known_hosts.sh . # buildkit

2025-10-13 14:29:02 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c ./known_hosts.sh /etc/ssh/ssh_known_hosts && rm /usr/src/node-red/known_hosts.sh # buildkit

2025-10-13 14:29:03 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c echo "PubkeyAcceptedKeyTypes +ssh-rsa" >> /etc/ssh/ssh_config # buildkit

2025-10-13 14:29:03 UTC (buildkit.dockerfile.v0)

COPY package.json . # buildkit

2025-10-13 14:29:03 UTC (buildkit.dockerfile.v0)

COPY flows.json /data # buildkit

2025-10-13 14:29:03 UTC (buildkit.dockerfile.v0)

COPY .docker/scripts/entrypoint.sh . # buildkit

2025-10-13 14:29:39 UTC (buildkit.dockerfile.v0)

ARG BUILD_DATE=2025-10-13T14:28:42Z

2025-10-13 14:29:39 UTC (buildkit.dockerfile.v0)

ARG BUILD_VERSION=4.1.1

2025-10-13 14:29:39 UTC (buildkit.dockerfile.v0)

ARG BUILD_REF=

2025-10-13 14:29:39 UTC (buildkit.dockerfile.v0)

ARG NODE_RED_VERSION=v4.1.1

2025-10-13 14:29:39 UTC (buildkit.dockerfile.v0)

ARG ARCH

2025-10-13 14:29:39 UTC (buildkit.dockerfile.v0)

ARG TAG_SUFFIX=-debian

2025-10-13 14:29:39 UTC (buildkit.dockerfile.v0)

LABEL org.label-schema.build-date=2025-10-13T14:28:42Z 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=4.1.1 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

2025-10-13 14:29:39 UTC (buildkit.dockerfile.v0)

COPY /usr/src/node-red/prod_node_modules ./node_modules # buildkit

2025-10-13 14:30:02 UTC (buildkit.dockerfile.v0)

RUN |6 BUILD_DATE=2025-10-13T14:28:42Z BUILD_VERSION=4.1.1 BUILD_REF= NODE_RED_VERSION=v4.1.1 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

2025-10-13 14:30:03 UTC (buildkit.dockerfile.v0)

RUN |6 BUILD_DATE=2025-10-13T14:28:42Z BUILD_VERSION=4.1.1 BUILD_REF= NODE_RED_VERSION=v4.1.1 ARCH= TAG_SUFFIX=-debian /bin/sh -c npm config set cache /data/.npm --global # buildkit

2025-10-13 14:30:03 UTC (buildkit.dockerfile.v0)

USER node-red

2025-10-13 14:30:03 UTC (buildkit.dockerfile.v0)

ENV NODE_RED_VERSION=v4.1.1 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

2025-10-13 14:30:03 UTC (buildkit.dockerfile.v0)

EXPOSE [1880/tcp]

2025-10-13 14:30:03 UTC (buildkit.dockerfile.v0)

HEALTHCHECK &{["CMD-SHELL" "node /healthcheck.js"] "0s" "0s" "0s" "0s" '\x00'}

2025-10-13 14:30:03 UTC (buildkit.dockerfile.v0)

ENTRYPOINT ["./entrypoint.sh"]

Details
Created

2025-10-13 14:34:58 UTC

Size

232 MB

Content Digest
Labels
  • authors
    Dave Conway-Jones, Nick O'Leary, James Thomas, Raymond Mouthaan
  • org.label-schema.arch
  • org.label-schema.build-date
    2025-10-13T14:28:42Z
  • 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
    4.1.1
  • org.opencontainers.image.source
    https://github.com/node-red/node-red-docker

Environment
FLOWS

flows.json

NODE_PATH

/usr/src/node-red/node_modules:/data/node_modules

NODE_RED_VERSION

v4.1.1

NODE_VERSION

20.19.5

PATH

/usr/src/node-red/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

YARN_VERSION

1.22.22


Layers

[#000] sha256:4c0d784fb90dddd991d201014e92ef1ebfe9a20d0f2ea56e2701fb9e8219be91 - 9.84% (22.8 MB)

[#001] sha256:9dea8f031582385257aaa48958e0609d13e30e0cdaa459e49a57b1eb6bfaa094 - 0.0% (3.23 KB)

[#002] sha256:131fb269de9db1df2fe0e71b5144efb60e881f03df6b8c344319257e0da511fc - 15.23% (35.3 MB)

[#003] sha256:459a915f16a808a8aa1ac91cfd02ea2e3318464c80751b85fbb7884abf62db7d - 0.7% (1.63 MB)

[#004] sha256:d9800c8d77f6a0fe7b5df70f3b8ed4dfa928cab5b0dfd811da6cba74766cbf36 - 0.0% (446 Bytes)

[#005] sha256:ee0413a3a14ce4dd5c701ed7cac20335889d8fab853bbd3b020a25ce0a79b690 - 0.0% (598 Bytes)

[#006] sha256:6c9f5a613ee0911ced2acafa95b90bb27721f4769a8fbefa51c8b6cd1c1d8155 - 0.0% (465 Bytes)

[#007] sha256:57219f93bc62e437f32739b84b4626b25289c4729172bc5cdfbb0b516d1c6930 - 20.27% (47 MB)

[#008] sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 - 0.0% (32 Bytes)

[#009] sha256:464d8b5a5b0dc486f035384d175db81a7d08a7451f7d157a4d08cd29627bdd81 - 0.0% (1.57 KB)

[#010] sha256:d597a32e15a089ed8da75549fd73ad52ad64c2e37ccae367815c09293be4af0e - 0.0% (2.15 KB)

[#011] sha256:14150d0e9155d580bf86239f574a396e0ba25144320610af14108fb4a2f2542c - 0.0% (956 Bytes)

[#012] sha256:4fed8b0a50f3d0723ef5d0cde709aa7bbcb9ca23af70068212fd10259c602d1b - 0.0% (595 Bytes)

[#013] sha256:7c42bf0f28b1b26d86a0f16c11f10029e68f931284ae1e3eb81adc08ff829268 - 0.0% (832 Bytes)

[#014] sha256:5c6b940c90d30f75e3266600424e3f4e989d4f3da8c9ab8a40784181642c6814 - 0.0% (361 Bytes)

[#015] sha256:9c560c44bb1e3b85b0d154430b7e9ae9a6fa5dbada26816e3eeb54f04ccedbf7 - 7.98% (18.5 MB)

[#016] sha256:2e58ea6bf675960c45e9c741e107906be04d67a98373faf24fa08c52bf67723f - 45.96% (107 MB)

[#017] sha256:557de7908cfd2e070f42a9da09aadaaf9f962a5eb5e68d2553e39ca5ee80a0f2 - 0.0% (594 Bytes)


History
2025-09-03 19:47:58 UTC (debuerreotype 0.16)

# debian.sh --arch 'armhf' out/ 'bookworm' '@1759104000'

2025-09-03 19:47:58 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c groupadd --gid 1000 node && useradd --uid 1000 --gid node --shell /bin/bash --create-home node # buildkit

2025-09-03 19:47:58 UTC (buildkit.dockerfile.v0)

ENV NODE_VERSION=20.19.5

2025-09-03 19:47:58 UTC (buildkit.dockerfile.v0)

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';; armhf) ARCH='armv7l' OPENSSL_ARCH='linux-armv4';; i386) ARCH='x86' OPENSSL_ARCH='linux-elf';; *) 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 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

2025-09-03 19:47:58 UTC (buildkit.dockerfile.v0)

ENV YARN_VERSION=1.22.22

2025-09-03 19:47:58 UTC (buildkit.dockerfile.v0)

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

2025-09-03 19:47:58 UTC (buildkit.dockerfile.v0)

COPY docker-entrypoint.sh /usr/local/bin/ # buildkit

2025-09-03 19:47:58 UTC (buildkit.dockerfile.v0)

ENTRYPOINT ["docker-entrypoint.sh"]

2025-09-03 19:47:58 UTC (buildkit.dockerfile.v0)

CMD ["node"]

2025-10-13 14:28:47 UTC (buildkit.dockerfile.v0)

COPY .docker/scripts/*.sh /tmp/ # buildkit

2025-10-13 14:28:47 UTC (buildkit.dockerfile.v0)

COPY .docker/healthcheck.js / # buildkit

2025-10-13 14:30:31 UTC (buildkit.dockerfile.v0)

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

2025-10-13 14:30:31 UTC (buildkit.dockerfile.v0)

WORKDIR /usr/src/node-red

2025-10-13 14:30:31 UTC (buildkit.dockerfile.v0)

COPY .docker/known_hosts.sh . # buildkit

2025-10-13 14:30:36 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c ./known_hosts.sh /etc/ssh/ssh_known_hosts && rm /usr/src/node-red/known_hosts.sh # buildkit

2025-10-13 14:30:36 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c echo "PubkeyAcceptedKeyTypes +ssh-rsa" >> /etc/ssh/ssh_config # buildkit

2025-10-13 14:30:36 UTC (buildkit.dockerfile.v0)

COPY package.json . # buildkit

2025-10-13 14:30:36 UTC (buildkit.dockerfile.v0)

COPY flows.json /data # buildkit

2025-10-13 14:30:36 UTC (buildkit.dockerfile.v0)

COPY .docker/scripts/entrypoint.sh . # buildkit

2025-10-13 14:33:07 UTC (buildkit.dockerfile.v0)

ARG BUILD_DATE=2025-10-13T14:28:42Z

2025-10-13 14:33:07 UTC (buildkit.dockerfile.v0)

ARG BUILD_VERSION=4.1.1

2025-10-13 14:33:07 UTC (buildkit.dockerfile.v0)

ARG BUILD_REF=

2025-10-13 14:33:07 UTC (buildkit.dockerfile.v0)

ARG NODE_RED_VERSION=v4.1.1

2025-10-13 14:33:07 UTC (buildkit.dockerfile.v0)

ARG ARCH

2025-10-13 14:33:07 UTC (buildkit.dockerfile.v0)

ARG TAG_SUFFIX=-debian

2025-10-13 14:33:07 UTC (buildkit.dockerfile.v0)

LABEL org.label-schema.build-date=2025-10-13T14:28:42Z 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=4.1.1 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

2025-10-13 14:33:07 UTC (buildkit.dockerfile.v0)

COPY /usr/src/node-red/prod_node_modules ./node_modules # buildkit

2025-10-13 14:34:54 UTC (buildkit.dockerfile.v0)

RUN |6 BUILD_DATE=2025-10-13T14:28:42Z BUILD_VERSION=4.1.1 BUILD_REF= NODE_RED_VERSION=v4.1.1 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

2025-10-13 14:34:58 UTC (buildkit.dockerfile.v0)

RUN |6 BUILD_DATE=2025-10-13T14:28:42Z BUILD_VERSION=4.1.1 BUILD_REF= NODE_RED_VERSION=v4.1.1 ARCH= TAG_SUFFIX=-debian /bin/sh -c npm config set cache /data/.npm --global # buildkit

2025-10-13 14:34:58 UTC (buildkit.dockerfile.v0)

USER node-red

2025-10-13 14:34:58 UTC (buildkit.dockerfile.v0)

ENV NODE_RED_VERSION=v4.1.1 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

2025-10-13 14:34:58 UTC (buildkit.dockerfile.v0)

EXPOSE [1880/tcp]

2025-10-13 14:34:58 UTC (buildkit.dockerfile.v0)

HEALTHCHECK &{["CMD-SHELL" "node /healthcheck.js"] "0s" "0s" "0s" "0s" '\x00'}

2025-10-13 14:34:58 UTC (buildkit.dockerfile.v0)

ENTRYPOINT ["./entrypoint.sh"]

Details
Created

2025-10-13 14:35:21 UTC

Size

268 MB

Content Digest
Labels
  • authors
    Dave Conway-Jones, Nick O'Leary, James Thomas, Raymond Mouthaan
  • org.label-schema.arch
  • org.label-schema.build-date
    2025-10-13T14:28:42Z
  • 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
    4.1.1
  • org.opencontainers.image.source
    https://github.com/node-red/node-red-docker

Environment
FLOWS

flows.json

NODE_PATH

/usr/src/node-red/node_modules:/data/node_modules

NODE_RED_VERSION

v4.1.1

NODE_VERSION

20.19.5

PATH

/usr/src/node-red/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

YARN_VERSION

1.22.22


Layers

[#000] sha256:f4e51325a7cb57cd9ae67bd9540483838b96bf7c9b0bf18205d9d30819e9ca38 - 10.02% (26.8 MB)

[#001] sha256:8f6bb730140296e752f600f64cfebfa8e6f7c7f70005821ad49bf9b1de266533 - 0.0% (3.23 KB)

[#002] sha256:b148e4f671b79ad5276c5baee5c251dd5d1b444328ed9d9bfc3652f871a67e3a - 14.59% (39 MB)

[#003] sha256:ec41c30709bf937f45cf38505d9fd1c7a96660b9868d4a5b355337d0aabdf813 - 0.61% (1.63 MB)

[#004] sha256:48b98c7b2eaa072e39861047d600252ec4306ac90bd56b2d1c35c671801e4135 - 0.0% (448 Bytes)

[#005] sha256:182c3d832e6df931a9f264a5bf109230deaf5192215596562e233af7cf508cab - 0.0% (598 Bytes)

[#006] sha256:6c9f5a613ee0911ced2acafa95b90bb27721f4769a8fbefa51c8b6cd1c1d8155 - 0.0% (465 Bytes)

[#007] sha256:5a1cae33b7871b0e623be0da3c168116ecd46b6ea0abb5bcda7d913530e4ca3d - 19.14% (51.2 MB)

[#008] sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 - 0.0% (32 Bytes)

[#009] sha256:1272a2dbf7975d5beb458cfc7e36cb76b31cdd9056ba2e9e94cb67764a1cda44 - 0.0% (1.57 KB)

[#010] sha256:03ec42dc27660521a9586ccb4914c9a6eb1a215801aa2717521943da38ad7e45 - 0.0% (2.15 KB)

[#011] sha256:e7c634736ebacc6f02d84237c2132d6a1faed941a926798abc983d08dafdd267 - 0.0% (956 Bytes)

[#012] sha256:d9cf5a93195440d9af4f0ca8f4c522e8dc6e2f5072d85d7ce4ccddc6210c61a9 - 0.0% (593 Bytes)

[#013] sha256:28250c19393834a5b4d9cca5d48c2ebf60542440d2a1cd04b0942c05c92fc9fd - 0.0% (832 Bytes)

[#014] sha256:1e174eb7d2b9651647ec89e7762ce59b2db52d8eb3be0d52cc92ac802a706c85 - 0.0% (360 Bytes)

[#015] sha256:fa2828d25b59c2826a505b988f66901d9c4aefb570a616cbab2713cc60ca1d84 - 7.02% (18.8 MB)

[#016] sha256:eb6431d15c75f011e1713593de2ce4e7b41e09de967708711d4fd2d97919e2ca - 48.62% (130 MB)

[#017] sha256:fcd78f439ce7d5b4e7a426a0bf3258fa08a46bf265ef7fc9881e137da9be2462 - 0.0% (598 Bytes)


History
2025-09-03 19:47:58 UTC (debuerreotype 0.16)

# debian.sh --arch 'arm64' out/ 'bookworm' '@1759104000'

2025-09-03 19:47:58 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c groupadd --gid 1000 node && useradd --uid 1000 --gid node --shell /bin/bash --create-home node # buildkit

2025-09-03 19:47:58 UTC (buildkit.dockerfile.v0)

ENV NODE_VERSION=20.19.5

2025-09-03 19:47:58 UTC (buildkit.dockerfile.v0)

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';; armhf) ARCH='armv7l' OPENSSL_ARCH='linux-armv4';; i386) ARCH='x86' OPENSSL_ARCH='linux-elf';; *) 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 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

2025-09-03 19:47:58 UTC (buildkit.dockerfile.v0)

ENV YARN_VERSION=1.22.22

2025-09-03 19:47:58 UTC (buildkit.dockerfile.v0)

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

2025-09-03 19:47:58 UTC (buildkit.dockerfile.v0)

COPY docker-entrypoint.sh /usr/local/bin/ # buildkit

2025-09-03 19:47:58 UTC (buildkit.dockerfile.v0)

ENTRYPOINT ["docker-entrypoint.sh"]

2025-09-03 19:47:58 UTC (buildkit.dockerfile.v0)

CMD ["node"]

2025-10-13 14:28:47 UTC (buildkit.dockerfile.v0)

COPY .docker/scripts/*.sh /tmp/ # buildkit

2025-10-13 14:28:47 UTC (buildkit.dockerfile.v0)

COPY .docker/healthcheck.js / # buildkit

2025-10-13 14:30:33 UTC (buildkit.dockerfile.v0)

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

2025-10-13 14:30:33 UTC (buildkit.dockerfile.v0)

WORKDIR /usr/src/node-red

2025-10-13 14:30:33 UTC (buildkit.dockerfile.v0)

COPY .docker/known_hosts.sh . # buildkit

2025-10-13 14:30:37 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c ./known_hosts.sh /etc/ssh/ssh_known_hosts && rm /usr/src/node-red/known_hosts.sh # buildkit

2025-10-13 14:30:37 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c echo "PubkeyAcceptedKeyTypes +ssh-rsa" >> /etc/ssh/ssh_config # buildkit

2025-10-13 14:30:37 UTC (buildkit.dockerfile.v0)

COPY package.json . # buildkit

2025-10-13 14:30:37 UTC (buildkit.dockerfile.v0)

COPY flows.json /data # buildkit

2025-10-13 14:30:37 UTC (buildkit.dockerfile.v0)

COPY .docker/scripts/entrypoint.sh . # buildkit

2025-10-13 14:33:25 UTC (buildkit.dockerfile.v0)

ARG BUILD_DATE=2025-10-13T14:28:42Z

2025-10-13 14:33:25 UTC (buildkit.dockerfile.v0)

ARG BUILD_VERSION=4.1.1

2025-10-13 14:33:25 UTC (buildkit.dockerfile.v0)

ARG BUILD_REF=

2025-10-13 14:33:25 UTC (buildkit.dockerfile.v0)

ARG NODE_RED_VERSION=v4.1.1

2025-10-13 14:33:25 UTC (buildkit.dockerfile.v0)

ARG ARCH

2025-10-13 14:33:25 UTC (buildkit.dockerfile.v0)

ARG TAG_SUFFIX=-debian

2025-10-13 14:33:25 UTC (buildkit.dockerfile.v0)

LABEL org.label-schema.build-date=2025-10-13T14:28:42Z 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=4.1.1 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

2025-10-13 14:33:25 UTC (buildkit.dockerfile.v0)

COPY /usr/src/node-red/prod_node_modules ./node_modules # buildkit

2025-10-13 14:35:17 UTC (buildkit.dockerfile.v0)

RUN |6 BUILD_DATE=2025-10-13T14:28:42Z BUILD_VERSION=4.1.1 BUILD_REF= NODE_RED_VERSION=v4.1.1 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

2025-10-13 14:35:21 UTC (buildkit.dockerfile.v0)

RUN |6 BUILD_DATE=2025-10-13T14:28:42Z BUILD_VERSION=4.1.1 BUILD_REF= NODE_RED_VERSION=v4.1.1 ARCH= TAG_SUFFIX=-debian /bin/sh -c npm config set cache /data/.npm --global # buildkit

2025-10-13 14:35:21 UTC (buildkit.dockerfile.v0)

USER node-red

2025-10-13 14:35:21 UTC (buildkit.dockerfile.v0)

ENV NODE_RED_VERSION=v4.1.1 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

2025-10-13 14:35:21 UTC (buildkit.dockerfile.v0)

EXPOSE [1880/tcp]

2025-10-13 14:35:21 UTC (buildkit.dockerfile.v0)

HEALTHCHECK &{["CMD-SHELL" "node /healthcheck.js"] "0s" "0s" "0s" "0s" '\x00'}

2025-10-13 14:35:21 UTC (buildkit.dockerfile.v0)

ENTRYPOINT ["./entrypoint.sh"]

Danger Zone
Delete Tag

Please be careful as this will not just delete the reference but also the actual content!

For example when you have latest and v1.2.3 both pointing to the same image
the deletion of latest will also permanently remove v1.2.3.

Delete