diff --git a/22/bullseye-slim/Dockerfile b/22/bullseye-slim/Dockerfile deleted file mode 100644 index 83b130439..000000000 --- a/22/bullseye-slim/Dockerfile +++ /dev/null @@ -1,104 +0,0 @@ -FROM debian:bullseye-slim - -RUN groupadd --gid 1000 node \ - && useradd --uid 1000 --gid node --shell /bin/bash --create-home node - -ENV NODE_VERSION=22.23.2 - -RUN 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';; \ - *) echo "unsupported architecture"; exit 1 ;; \ - esac \ - && set -ex \ - # libatomic1 for arm - && 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/* \ - # use pre-existing gpg directory, see https://github.com/nodejs/docker-node/pull/1895#issuecomment-1550389150 - && export GNUPGHOME="$(mktemp -d)" \ - # gpg keys listed at https://github.com/nodejs/node#release-keys - && for key in \ - 5BE8A3F6C8A5C01D106C0AD820B1A390B168D356 \ - DD792F5973C6DE52C432CBDAC77ABFA00DDBF2B7 \ - CC68F5A3106FF448322E48ED27F5E38D5B0A215F \ - 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 \ - 890C08DB8579162FEE0DF9DB8BEAB4DFCF555EF4 \ - C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C \ - 108F52B48DB57BB0CC439B2997B01419BD92F80A \ - A363A499291CBBC940DD62E41F10027AF002F8B0 \ - 655F3B5C1FB3FA8D1A0CA6BDE4A7D232B936D2FD \ - ; 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 \ - # Remove unused OpenSSL headers to save ~34MB. See this NodeJS issue: https://github.com/nodejs/node/issues/46451 - && 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 \ - # smoke tests - && node --version \ - && npm --version \ - && rm -rf /tmp/* - -ENV YARN_VERSION=1.22.22 - -RUN 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/* \ - # use pre-existing gpg directory, see https://github.com/nodejs/docker-node/pull/1895#issuecomment-1550389150 - && 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 \ - # smoke test - && yarn --version \ - && rm -rf /tmp/* - -COPY docker-entrypoint.sh /usr/local/bin/ -ENTRYPOINT ["docker-entrypoint.sh"] - -CMD [ "node" ] diff --git a/22/bullseye-slim/docker-entrypoint.sh b/22/bullseye-slim/docker-entrypoint.sh deleted file mode 100755 index 1b3116e53..000000000 --- a/22/bullseye-slim/docker-entrypoint.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -set -e - -# Run command with node if the first argument contains a "-" or is not a system command. The last -# part inside the "{}" is a workaround for the following bug in ash/dash: -# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=874264 -if [ "${1#-}" != "${1}" ] || [ -z "$(command -v "${1}")" ] || { [ -f "${1}" ] && ! [ -x "${1}" ]; }; then - set -- node "$@" -fi - -exec "$@" diff --git a/22/bullseye/Dockerfile b/22/bullseye/Dockerfile deleted file mode 100644 index b60abad25..000000000 --- a/22/bullseye/Dockerfile +++ /dev/null @@ -1,77 +0,0 @@ -FROM buildpack-deps:bullseye - -RUN groupadd --gid 1000 node \ - && useradd --uid 1000 --gid node --shell /bin/bash --create-home node - -ENV NODE_VERSION=22.23.2 - -RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ - && case "${dpkgArch##*-}" in \ - amd64) ARCH='x64';; \ - ppc64el) ARCH='ppc64le';; \ - s390x) ARCH='s390x';; \ - arm64) ARCH='arm64';; \ - armhf) ARCH='armv7l';; \ - *) echo "unsupported architecture"; exit 1 ;; \ - esac \ - # use pre-existing gpg directory, see https://github.com/nodejs/docker-node/pull/1895#issuecomment-1550389150 - && export GNUPGHOME="$(mktemp -d)" \ - # gpg keys listed at https://github.com/nodejs/node#release-keys - && set -ex \ - && for key in \ - 5BE8A3F6C8A5C01D106C0AD820B1A390B168D356 \ - DD792F5973C6DE52C432CBDAC77ABFA00DDBF2B7 \ - CC68F5A3106FF448322E48ED27F5E38D5B0A215F \ - 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 \ - 890C08DB8579162FEE0DF9DB8BEAB4DFCF555EF4 \ - C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C \ - 108F52B48DB57BB0CC439B2997B01419BD92F80A \ - A363A499291CBBC940DD62E41F10027AF002F8B0 \ - 655F3B5C1FB3FA8D1A0CA6BDE4A7D232B936D2FD \ - ; 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 \ - && ln -s /usr/local/bin/node /usr/local/bin/nodejs \ - # smoke tests - && node --version \ - && npm --version \ - && rm -rf /tmp/* - -ENV YARN_VERSION=1.22.22 - -RUN set -ex \ - # use pre-existing gpg directory, see https://github.com/nodejs/docker-node/pull/1895#issuecomment-1550389150 - && 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 \ - # smoke test - && yarn --version \ - && rm -rf /tmp/* - -COPY docker-entrypoint.sh /usr/local/bin/ -ENTRYPOINT ["docker-entrypoint.sh"] - -CMD [ "node" ] diff --git a/22/bullseye/docker-entrypoint.sh b/22/bullseye/docker-entrypoint.sh deleted file mode 100755 index 1b3116e53..000000000 --- a/22/bullseye/docker-entrypoint.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -set -e - -# Run command with node if the first argument contains a "-" or is not a system command. The last -# part inside the "{}" is a workaround for the following bug in ash/dash: -# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=874264 -if [ "${1#-}" != "${1}" ] || [ -z "$(command -v "${1}")" ] || { [ -f "${1}" ] && ! [ -x "${1}" ]; }; then - set -- node "$@" -fi - -exec "$@" diff --git a/24/bullseye-slim/Dockerfile b/24/bullseye-slim/Dockerfile deleted file mode 100644 index 2e0f41dc4..000000000 --- a/24/bullseye-slim/Dockerfile +++ /dev/null @@ -1,101 +0,0 @@ -FROM debian:bullseye-slim - -RUN groupadd --gid 1000 node \ - && useradd --uid 1000 --gid node --shell /bin/bash --create-home node - -ENV NODE_VERSION=24.20.0 - -RUN ARCH= OPENSSL_ARCH= && dpkgArch="$(dpkg --print-architecture)" \ - && case "${dpkgArch##*-}" in \ - amd64) ARCH='x64' OPENSSL_ARCH='linux-x86_64';; \ - arm64) ARCH='arm64' OPENSSL_ARCH='linux-aarch64';; \ - *) echo "unsupported architecture"; exit 1 ;; \ - esac \ - && set -ex \ - # libatomic1 for arm - && 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/* \ - # use pre-existing gpg directory, see https://github.com/nodejs/docker-node/pull/1895#issuecomment-1550389150 - && export GNUPGHOME="$(mktemp -d)" \ - # gpg keys listed at https://github.com/nodejs/node#release-keys - && 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 \ - # Remove unused OpenSSL headers to save ~34MB. See this NodeJS issue: https://github.com/nodejs/node/issues/46451 - && 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 \ - # smoke tests - && node --version \ - && npm --version \ - && rm -rf /tmp/* - -ENV YARN_VERSION=1.22.22 - -RUN 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/* \ - # use pre-existing gpg directory, see https://github.com/nodejs/docker-node/pull/1895#issuecomment-1550389150 - && 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 \ - # smoke test - && yarn --version \ - && rm -rf /tmp/* - -COPY docker-entrypoint.sh /usr/local/bin/ -ENTRYPOINT ["docker-entrypoint.sh"] - -CMD [ "node" ] diff --git a/24/bullseye-slim/docker-entrypoint.sh b/24/bullseye-slim/docker-entrypoint.sh deleted file mode 100755 index 1b3116e53..000000000 --- a/24/bullseye-slim/docker-entrypoint.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -set -e - -# Run command with node if the first argument contains a "-" or is not a system command. The last -# part inside the "{}" is a workaround for the following bug in ash/dash: -# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=874264 -if [ "${1#-}" != "${1}" ] || [ -z "$(command -v "${1}")" ] || { [ -f "${1}" ] && ! [ -x "${1}" ]; }; then - set -- node "$@" -fi - -exec "$@" diff --git a/24/bullseye/Dockerfile b/24/bullseye/Dockerfile deleted file mode 100644 index 5ca0f2470..000000000 --- a/24/bullseye/Dockerfile +++ /dev/null @@ -1,74 +0,0 @@ -FROM buildpack-deps:bullseye - -RUN groupadd --gid 1000 node \ - && useradd --uid 1000 --gid node --shell /bin/bash --create-home node - -ENV NODE_VERSION=24.20.0 - -RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ - && case "${dpkgArch##*-}" in \ - amd64) ARCH='x64';; \ - arm64) ARCH='arm64';; \ - *) echo "unsupported architecture"; exit 1 ;; \ - esac \ - # use pre-existing gpg directory, see https://github.com/nodejs/docker-node/pull/1895#issuecomment-1550389150 - && export GNUPGHOME="$(mktemp -d)" \ - # gpg keys listed at https://github.com/nodejs/node#release-keys - && set -ex \ - && 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 \ - && ln -s /usr/local/bin/node /usr/local/bin/nodejs \ - # smoke tests - && node --version \ - && npm --version \ - && rm -rf /tmp/* - -ENV YARN_VERSION=1.22.22 - -RUN set -ex \ - # use pre-existing gpg directory, see https://github.com/nodejs/docker-node/pull/1895#issuecomment-1550389150 - && 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 \ - # smoke test - && yarn --version \ - && rm -rf /tmp/* - -COPY docker-entrypoint.sh /usr/local/bin/ -ENTRYPOINT ["docker-entrypoint.sh"] - -CMD [ "node" ] diff --git a/24/bullseye/docker-entrypoint.sh b/24/bullseye/docker-entrypoint.sh deleted file mode 100755 index 1b3116e53..000000000 --- a/24/bullseye/docker-entrypoint.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -set -e - -# Run command with node if the first argument contains a "-" or is not a system command. The last -# part inside the "{}" is a workaround for the following bug in ash/dash: -# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=874264 -if [ "${1#-}" != "${1}" ] || [ -z "$(command -v "${1}")" ] || { [ -f "${1}" ] && ! [ -x "${1}" ]; }; then - set -- node "$@" -fi - -exec "$@" diff --git a/26/bullseye-slim/Dockerfile b/26/bullseye-slim/Dockerfile deleted file mode 100644 index bc8e33749..000000000 --- a/26/bullseye-slim/Dockerfile +++ /dev/null @@ -1,64 +0,0 @@ -FROM debian:bullseye-slim - -RUN groupadd --gid 1000 node \ - && useradd --uid 1000 --gid node --shell /bin/bash --create-home node - -ENV NODE_VERSION=26.8.1 - -RUN ARCH= OPENSSL_ARCH= && dpkgArch="$(dpkg --print-architecture)" \ - && case "${dpkgArch##*-}" in \ - amd64) ARCH='x64' OPENSSL_ARCH='linux-x86_64';; \ - arm64) ARCH='arm64' OPENSSL_ARCH='linux-aarch64';; \ - *) echo "unsupported architecture"; exit 1 ;; \ - esac \ - && set -ex \ - # libatomic1 for arm - && 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/* \ - # use pre-existing gpg directory, see https://github.com/nodejs/docker-node/pull/1895#issuecomment-1550389150 - && export GNUPGHOME="$(mktemp -d)" \ - # gpg keys listed at https://github.com/nodejs/node#release-keys - && 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 \ - # Remove unused OpenSSL headers to save ~34MB. See this NodeJS issue: https://github.com/nodejs/node/issues/46451 - && 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 \ - # smoke tests - && node --version \ - && npm --version \ - && rm -rf /tmp/* - - -COPY docker-entrypoint.sh /usr/local/bin/ -ENTRYPOINT ["docker-entrypoint.sh"] - -CMD [ "node" ] diff --git a/26/bullseye-slim/docker-entrypoint.sh b/26/bullseye-slim/docker-entrypoint.sh deleted file mode 100755 index 1b3116e53..000000000 --- a/26/bullseye-slim/docker-entrypoint.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -set -e - -# Run command with node if the first argument contains a "-" or is not a system command. The last -# part inside the "{}" is a workaround for the following bug in ash/dash: -# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=874264 -if [ "${1#-}" != "${1}" ] || [ -z "$(command -v "${1}")" ] || { [ -f "${1}" ] && ! [ -x "${1}" ]; }; then - set -- node "$@" -fi - -exec "$@" diff --git a/26/bullseye/Dockerfile b/26/bullseye/Dockerfile deleted file mode 100644 index 34530eb9b..000000000 --- a/26/bullseye/Dockerfile +++ /dev/null @@ -1,50 +0,0 @@ -FROM buildpack-deps:bullseye - -RUN groupadd --gid 1000 node \ - && useradd --uid 1000 --gid node --shell /bin/bash --create-home node - -ENV NODE_VERSION=26.8.1 - -RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ - && case "${dpkgArch##*-}" in \ - amd64) ARCH='x64';; \ - arm64) ARCH='arm64';; \ - *) echo "unsupported architecture"; exit 1 ;; \ - esac \ - # use pre-existing gpg directory, see https://github.com/nodejs/docker-node/pull/1895#issuecomment-1550389150 - && export GNUPGHOME="$(mktemp -d)" \ - # gpg keys listed at https://github.com/nodejs/node#release-keys - && set -ex \ - && 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 \ - && ln -s /usr/local/bin/node /usr/local/bin/nodejs \ - # smoke tests - && node --version \ - && npm --version \ - && rm -rf /tmp/* - - -COPY docker-entrypoint.sh /usr/local/bin/ -ENTRYPOINT ["docker-entrypoint.sh"] - -CMD [ "node" ] diff --git a/26/bullseye/docker-entrypoint.sh b/26/bullseye/docker-entrypoint.sh deleted file mode 100755 index 1b3116e53..000000000 --- a/26/bullseye/docker-entrypoint.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -set -e - -# Run command with node if the first argument contains a "-" or is not a system command. The last -# part inside the "{}" is a workaround for the following bug in ash/dash: -# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=874264 -if [ "${1#-}" != "${1}" ] || [ -z "$(command -v "${1}")" ] || { [ -f "${1}" ] && ! [ -x "${1}" ]; }; then - set -- node "$@" -fi - -exec "$@" diff --git a/README.md b/README.md index fd9c72a16..6ee23ca6d 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,6 @@ The official Node.js docker image, made with love by the node community. - [`node:`](#nodeversion) - [`node:lts`](#nodelts) - [`node:alpine`](#nodealpine) - - [`node:bullseye`](#nodebullseye) - [`node:bookworm`](#nodebookworm) - [`node:trixie`](#nodetrixie) - [`node:slim`](#nodeslim) @@ -210,12 +209,6 @@ The [Smaller images without npm/yarn](./docs/BestPractices.md#smaller-images-without-npmyarn), shows how to produce a custom image by removing package managers in a multi-stage build. -### `node:bullseye` - -This image is based on version 11 of -[Debian](https://debian.org), available in -[the `debian` official image](https://hub.docker.com/_/debian). - ### `node:bookworm` This image is based on version 12 of diff --git a/SECURITY.md b/SECURITY.md index 6ae4285ed..432c40cce 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -9,7 +9,7 @@ Common Vulnerabilities and Exposures (CVE) reports that relate to Node.js or its CVEs for the base operating system image packages should be reported to those repositories. Nothing to address those CVEs is in the hands of this repo. - [Alpine](https://github.com/alpinelinux/docker-alpine) -- [Debian (bullseye, bookworm, trixie)](https://github.com/debuerreotype/docker-debian-artifacts) +- [Debian (bookworm, trixie)](https://github.com/debuerreotype/docker-debian-artifacts) When base images are patched, the images are rebuilt and rolled out to the Docker hub without intervention by this repo. This process is explained in . diff --git a/architectures b/architectures index cae6fda0f..3447a5084 100644 --- a/architectures +++ b/architectures @@ -1,7 +1,7 @@ bashbrew-arch variants -amd64 alpine3.23,alpine3.24,bookworm,bookworm-slim,bullseye,bullseye-slim,trixie,trixie-slim +amd64 alpine3.23,alpine3.24,bookworm,bookworm-slim,trixie,trixie-slim arm32v6 alpine3.23,alpine3.24 -arm32v7 alpine3.23,alpine3.24,bookworm,bookworm-slim,bullseye,bullseye-slim,trixie,trixie-slim -arm64v8 alpine3.23,alpine3.24,bookworm,bookworm-slim,bullseye,bullseye-slim,trixie,trixie-slim +arm32v7 alpine3.23,alpine3.24,bookworm,bookworm-slim,trixie,trixie-slim +arm64v8 alpine3.23,alpine3.24,bookworm,bookworm-slim,trixie,trixie-slim ppc64le bookworm,bookworm-slim,trixie,trixie-slim s390x alpine3.23,alpine3.24,bookworm,bookworm-slim,trixie,trixie-slim diff --git a/versions.json b/versions.json index c174a9f1b..7756bbbc5 100644 --- a/versions.json +++ b/versions.json @@ -26,14 +26,6 @@ "arm64v8", "ppc64le" ], - "bullseye": [ - "amd64", - "arm64v8" - ], - "bullseye-slim": [ - "amd64", - "arm64v8" - ], "trixie": [ "amd64", "arm64v8", @@ -77,14 +69,6 @@ "arm64v8", "ppc64le" ], - "bullseye": [ - "amd64", - "arm64v8" - ], - "bullseye-slim": [ - "amd64", - "arm64v8" - ], "trixie": [ "amd64", "arm64v8", @@ -134,16 +118,6 @@ "arm64v8", "ppc64le" ], - "bullseye": [ - "amd64", - "arm32v7", - "arm64v8" - ], - "bullseye-slim": [ - "amd64", - "arm32v7", - "arm64v8" - ], "trixie": [ "amd64", "arm64v8",