Repository navigation
Node: feat: Node.js 26.11.1 - #22448
Conversation
This comment has been minimized.
This comment has been minimized.
This comment was marked as outdated.
This comment was marked as outdated.
5d449c7 to
1da0e2d
Compare
Diff for 1da0e2d:diff --git a/_bashbrew-cat b/_bashbrew-cat
index 1f0f693..c44138a 100644
--- a/_bashbrew-cat
+++ b/_bashbrew-cat
@@ -62,32 +62,32 @@ Architectures: amd64, arm64v8, ppc64le, s390x
GitCommit: 93a7bafc324a85ac1ee461604cff87cffacb6d7a
Directory: 24/trixie-slim
-Tags: 26, 26-trixie, 26.10, 26.10-trixie, 26.10.0, 26.10.0-trixie, current, current-trixie, latest, trixie
+Tags: 26, 26-trixie, 26.11, 26.11-trixie, 26.11.1, 26.11.1-trixie, current, current-trixie, latest, trixie
Architectures: amd64, arm64v8, ppc64le, s390x
-GitCommit: 33161d6f1329b30670bd3259c8db7bbe7da072c8
+GitCommit: 108ae4a54c51371afe90401b0050f206e97b4690
Directory: 26/trixie
-Tags: 26-alpine, 26-alpine3.24, 26.10-alpine, 26.10-alpine3.24, 26.10.0-alpine, 26.10.0-alpine3.24, alpine, alpine3.24, current-alpine, current-alpine3.24
+Tags: 26-alpine, 26-alpine3.24, 26.11-alpine, 26.11-alpine3.24, 26.11.1-alpine, 26.11.1-alpine3.24, alpine, alpine3.24, current-alpine, current-alpine3.24
Architectures: amd64, arm64v8
-GitCommit: 33161d6f1329b30670bd3259c8db7bbe7da072c8
+GitCommit: 108ae4a54c51371afe90401b0050f206e97b4690
Directory: 26/alpine3.24
-Tags: 26-alpine3.23, 26.10-alpine3.23, 26.10.0-alpine3.23, alpine3.23, current-alpine3.23
+Tags: 26-alpine3.23, 26.11-alpine3.23, 26.11.1-alpine3.23, alpine3.23, current-alpine3.23
Architectures: amd64, arm64v8
-GitCommit: 33161d6f1329b30670bd3259c8db7bbe7da072c8
+GitCommit: 108ae4a54c51371afe90401b0050f206e97b4690
Directory: 26/alpine3.23
-Tags: 26-bookworm, 26.10-bookworm, 26.10.0-bookworm, bookworm, current-bookworm
+Tags: 26-bookworm, 26.11-bookworm, 26.11.1-bookworm, bookworm, current-bookworm
Architectures: amd64, arm64v8, ppc64le
-GitCommit: 33161d6f1329b30670bd3259c8db7bbe7da072c8
+GitCommit: 108ae4a54c51371afe90401b0050f206e97b4690
Directory: 26/bookworm
-Tags: 26-bookworm-slim, 26.10-bookworm-slim, 26.10.0-bookworm-slim, bookworm-slim, current-bookworm-slim
+Tags: 26-bookworm-slim, 26.11-bookworm-slim, 26.11.1-bookworm-slim, bookworm-slim, current-bookworm-slim
Architectures: amd64, arm64v8, ppc64le
-GitCommit: 33161d6f1329b30670bd3259c8db7bbe7da072c8
+GitCommit: 108ae4a54c51371afe90401b0050f206e97b4690
Directory: 26/bookworm-slim
-Tags: 26-slim, 26-trixie-slim, 26.10-slim, 26.10-trixie-slim, 26.10.0-slim, 26.10.0-trixie-slim, current-slim, current-trixie-slim, slim, trixie-slim
+Tags: 26-slim, 26-trixie-slim, 26.11-slim, 26.11-trixie-slim, 26.11.1-slim, 26.11.1-trixie-slim, current-slim, current-trixie-slim, slim, trixie-slim
Architectures: amd64, arm64v8, ppc64le, s390x
-GitCommit: 33161d6f1329b30670bd3259c8db7bbe7da072c8
+GitCommit: 108ae4a54c51371afe90401b0050f206e97b4690
Directory: 26/trixie-slim
diff --git a/_bashbrew-list b/_bashbrew-list
index 4a6b6fe..46999c9 100644
--- a/_bashbrew-list
+++ b/_bashbrew-list
@@ -61,24 +61,24 @@ node:26-bookworm-slim
node:26-slim
node:26-trixie
node:26-trixie-slim
-node:26.10
-node:26.10-alpine
-node:26.10-alpine3.23
-node:26.10-alpine3.24
-node:26.10-bookworm
-node:26.10-bookworm-slim
-node:26.10-slim
-node:26.10-trixie
-node:26.10-trixie-slim
-node:26.10.0
-node:26.10.0-alpine
-node:26.10.0-alpine3.23
-node:26.10.0-alpine3.24
-node:26.10.0-bookworm
-node:26.10.0-bookworm-slim
-node:26.10.0-slim
-node:26.10.0-trixie
-node:26.10.0-trixie-slim
+node:26.11
+node:26.11-alpine
+node:26.11-alpine3.23
+node:26.11-alpine3.24
+node:26.11-bookworm
+node:26.11-bookworm-slim
+node:26.11-slim
+node:26.11-trixie
+node:26.11-trixie-slim
+node:26.11.1
+node:26.11.1-alpine
+node:26.11.1-alpine3.23
+node:26.11.1-alpine3.24
+node:26.11.1-bookworm
+node:26.11.1-bookworm-slim
+node:26.11.1-slim
+node:26.11.1-trixie
+node:26.11.1-trixie-slim
node:alpine
node:alpine3.23
node:alpine3.24
diff --git a/node_current-alpine3.23/Dockerfile b/node_current-alpine3.23/Dockerfile
index 8f209ab..4ff9087 100644
--- a/node_current-alpine3.23/Dockerfile
+++ b/node_current-alpine3.23/Dockerfile
@@ -1,43 +1,25 @@
FROM alpine:3.23
-ENV NODE_VERSION=26.10.0
+ENV NODE_VERSION=26.11.1
RUN addgroup -g 1000 node \
&& adduser -u 1000 -G node -s /bin/sh -D node \
&& apk add --no-cache \
+ libatomic \
libstdc++ \
&& apk add --no-cache --virtual .build-deps \
+ gnupg \
curl \
&& ARCH= OPENSSL_ARCH='linux*' && alpineArch="$(apk --print-arch)" \
&& case "${alpineArch##*-}" in \
- x86_64) ARCH='x64' CHECKSUM="e91679de73f48e4f107fc968bec351dea6676c7f54af004280a7baaf5c6d88c5" OPENSSL_ARCH=linux-x86_64;; \
+ x86_64) ARCH='x64' OPENSSL_ARCH=linux-x86_64;; \
aarch64) OPENSSL_ARCH=linux-aarch64;; \
*) echo "unsupported architecture"; exit 1 ;; \
esac \
- && if [ -n "${CHECKSUM}" ]; then \
- set -eu; \
- curl -fsSLO --compressed "https://unofficial-builds.nodejs.org/download/release/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz"; \
- echo "$CHECKSUM node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" | sha256sum -c - \
- && tar -xJf "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \
- && ln -s /usr/local/bin/node /usr/local/bin/nodejs; \
- else \
- echo "Building from source" \
- # backup build
- && apk add --no-cache --virtual .build-deps-full \
- binutils-gold \
- g++ \
- gcc \
- gnupg \
- libgcc \
- linux-headers \
- make \
- python3 \
- py-setuptools \
- rust \
- cargo \
# 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 \
@@ -51,6 +33,29 @@ RUN addgroup -g 1000 node \
{ 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 \
+ && if [ "$ARCH" = "x64" ]; then \
+ curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH-musl.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-musl.tar.xz\$" SHASUMS256.txt | sha256sum -c - \
+ && tar -xJf "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \
+ && rm "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt \
+ && ln -s /usr/local/bin/node /usr/local/bin/nodejs; \
+ else \
+ echo "Building from source" \
+ && apk add --no-cache --virtual .build-deps-full \
+ binutils-gold \
+ g++ \
+ gcc \
+ libgcc \
+ linux-headers \
+ make \
+ python3 \
+ py-setuptools \
+ rust \
+ cargo \
&& curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION.tar.xz" \
&& curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \
&& gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \
@@ -67,7 +72,6 @@ RUN addgroup -g 1000 node \
&& rm -Rf "node-v$NODE_VERSION" \
&& rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt; \
fi \
- && rm -f "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" \
# 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 {} \; \
&& apk del .build-deps \
diff --git a/node_current-alpine3.24/Dockerfile b/node_current-alpine3.24/Dockerfile
index dd62409..3fb20c8 100644
--- a/node_current-alpine3.24/Dockerfile
+++ b/node_current-alpine3.24/Dockerfile
@@ -1,43 +1,25 @@
FROM alpine:3.24
-ENV NODE_VERSION=26.10.0
+ENV NODE_VERSION=26.11.1
RUN addgroup -g 1000 node \
&& adduser -u 1000 -G node -s /bin/sh -D node \
&& apk add --no-cache \
+ libatomic \
libstdc++ \
&& apk add --no-cache --virtual .build-deps \
+ gnupg \
curl \
&& ARCH= OPENSSL_ARCH='linux*' && alpineArch="$(apk --print-arch)" \
&& case "${alpineArch##*-}" in \
- x86_64) ARCH='x64' CHECKSUM="e91679de73f48e4f107fc968bec351dea6676c7f54af004280a7baaf5c6d88c5" OPENSSL_ARCH=linux-x86_64;; \
+ x86_64) ARCH='x64' OPENSSL_ARCH=linux-x86_64;; \
aarch64) OPENSSL_ARCH=linux-aarch64;; \
*) echo "unsupported architecture"; exit 1 ;; \
esac \
- && if [ -n "${CHECKSUM}" ]; then \
- set -eu; \
- curl -fsSLO --compressed "https://unofficial-builds.nodejs.org/download/release/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz"; \
- echo "$CHECKSUM node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" | sha256sum -c - \
- && tar -xJf "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \
- && ln -s /usr/local/bin/node /usr/local/bin/nodejs; \
- else \
- echo "Building from source" \
- # backup build
- && apk add --no-cache --virtual .build-deps-full \
- binutils-gold \
- g++ \
- gcc \
- gnupg \
- libgcc \
- linux-headers \
- make \
- python3 \
- py-setuptools \
- rust \
- cargo \
# 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 \
@@ -51,6 +33,29 @@ RUN addgroup -g 1000 node \
{ 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 \
+ && if [ "$ARCH" = "x64" ]; then \
+ curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH-musl.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-musl.tar.xz\$" SHASUMS256.txt | sha256sum -c - \
+ && tar -xJf "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \
+ && rm "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt \
+ && ln -s /usr/local/bin/node /usr/local/bin/nodejs; \
+ else \
+ echo "Building from source" \
+ && apk add --no-cache --virtual .build-deps-full \
+ binutils-gold \
+ g++ \
+ gcc \
+ libgcc \
+ linux-headers \
+ make \
+ python3 \
+ py-setuptools \
+ rust \
+ cargo \
&& curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION.tar.xz" \
&& curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \
&& gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \
@@ -67,7 +72,6 @@ RUN addgroup -g 1000 node \
&& rm -Rf "node-v$NODE_VERSION" \
&& rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt; \
fi \
- && rm -f "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" \
# 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 {} \; \
&& apk del .build-deps \
diff --git a/node_current-bookworm-slim/Dockerfile b/node_current-bookworm-slim/Dockerfile
index 1845303..5523829 100644
--- a/node_current-bookworm-slim/Dockerfile
+++ b/node_current-bookworm-slim/Dockerfile
@@ -3,7 +3,7 @@ FROM debian:bookworm-slim
RUN groupadd --gid 1000 node \
&& useradd --uid 1000 --gid node --shell /bin/bash --create-home node
-ENV NODE_VERSION=26.10.0
+ENV NODE_VERSION=26.11.1
RUN ARCH= OPENSSL_ARCH= && dpkgArch="$(dpkg --print-architecture)" \
&& case "${dpkgArch##*-}" in \
@@ -13,7 +13,6 @@ RUN ARCH= OPENSSL_ARCH= && dpkgArch="$(dpkg --print-architecture)" \
*) 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
diff --git a/node_current-bookworm/Dockerfile b/node_current-bookworm/Dockerfile
index b946c0e..695ea3a 100644
--- a/node_current-bookworm/Dockerfile
+++ b/node_current-bookworm/Dockerfile
@@ -3,7 +3,7 @@ FROM buildpack-deps:bookworm
RUN groupadd --gid 1000 node \
&& useradd --uid 1000 --gid node --shell /bin/bash --create-home node
-ENV NODE_VERSION=26.10.0
+ENV NODE_VERSION=26.11.1
RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \
&& case "${dpkgArch##*-}" in \
diff --git a/node_trixie-slim/Dockerfile b/node_trixie-slim/Dockerfile
index 7332081..1f94a3e 100644
--- a/node_trixie-slim/Dockerfile
+++ b/node_trixie-slim/Dockerfile
@@ -3,7 +3,7 @@ FROM debian:trixie-slim
RUN groupadd --gid 1000 node \
&& useradd --uid 1000 --gid node --shell /bin/bash --create-home node
-ENV NODE_VERSION=26.10.0
+ENV NODE_VERSION=26.11.1
RUN ARCH= OPENSSL_ARCH= && dpkgArch="$(dpkg --print-architecture)" \
&& case "${dpkgArch##*-}" in \
@@ -14,7 +14,6 @@ RUN ARCH= OPENSSL_ARCH= && dpkgArch="$(dpkg --print-architecture)" \
*) 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
diff --git a/node_trixie/Dockerfile b/node_trixie/Dockerfile
index 7d83461..c1f037b 100644
--- a/node_trixie/Dockerfile
+++ b/node_trixie/Dockerfile
@@ -3,7 +3,7 @@ FROM buildpack-deps:trixie
RUN groupadd --gid 1000 node \
&& useradd --uid 1000 --gid node --shell /bin/bash --create-home node
-ENV NODE_VERSION=26.10.0
+ENV NODE_VERSION=26.11.1
RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \
&& case "${dpkgArch##*-}" in \Relevant Maintainers:
|
|
New 26.11.1 release is out, and this PR is updated |
tianon
left a comment
There was a problem hiding this comment.
It'd be great if we could have this also embed the checksums from SHASUMS256 (since signature and checksum verify different things, but only if you don't get them from the same potentially compromised source). However, I'm not going to hold this up for that.
|
All the tar and SHASUM256 are coming from the same "official" source/folder now. If that is compromised, the only "external" bit in the images is the GPG signiture checks like you mention. |
The difference between the Dockerfile structure for Node.js 26.11.1 and Node.js 26.10.0 affects only Alpine builds, such that the The previously embedded CHECKSUM in Alpine builds was for unofficial-builds only, not for the official builds. That one has been removed since it is no longer relevant. Debian Dockerfile instances haven't had a CHECKSUM embedded, so there is no change in that respect between the previous release and this one. If there is a need for improvement here, a new issue in https://github.com/nodejs/docker-node/issues would be helpful as already suggested by @nschonni |
|
It's not a "new" issue, and not a blocker -- just a suggestion for improvement that I noticed while reviewing this. |
Thanks for the clarification! |
Pull Request: nodejs/docker-node#2648
@PeterDaveHello @SimenB @nschonni @RafaelGSS @mcollina