Skip to content

Node: feat: Node.js 26.0.0 (expected May 5, 2026) - #21395

Merged
yosifkit merged 1 commit into
docker-library:masterfrom
nodejs:node
May 6, 2026
Merged

yosifkit merged 1 commit into
docker-library:masterfrom
nodejs:node

Conversation

@nodejs-github-bot

Copy link
Copy Markdown
Contributor

@github-actions

github-actions Bot commented May 6, 2026

Copy link
Copy Markdown
Diff for 0aac7a1:
diff --git a/_bashbrew-cat b/_bashbrew-cat
index 464060d..948964d 100644
--- a/_bashbrew-cat
+++ b/_bashbrew-cat
@@ -82,42 +82,82 @@ Architectures: amd64, arm64v8, ppc64le, s390x
 GitCommit: 58635ae7aaeab55a5c036b59e8ca93d864119cbe
 Directory: 24/trixie-slim
 
-Tags: 25, 25-bookworm, 25.9, 25.9-bookworm, 25.9.0, 25.9.0-bookworm, bookworm, current, current-bookworm, latest
+Tags: 25, 25-bookworm, 25.9, 25.9-bookworm, 25.9.0, 25.9.0-bookworm
 Architectures: amd64, arm64v8, ppc64le, s390x
 GitCommit: f10204b756360aa4c4913b444b591b69dd8fbd8b
 Directory: 25/bookworm
 
-Tags: 25-alpine, 25-alpine3.23, 25.9-alpine, 25.9-alpine3.23, 25.9.0-alpine, 25.9.0-alpine3.23, alpine, alpine3.23, current-alpine, current-alpine3.23
+Tags: 25-alpine, 25-alpine3.23, 25.9-alpine, 25.9-alpine3.23, 25.9.0-alpine, 25.9.0-alpine3.23
 Architectures: amd64, arm64v8, s390x
 GitCommit: f10204b756360aa4c4913b444b591b69dd8fbd8b
 Directory: 25/alpine3.23
 
-Tags: 25-alpine3.22, 25.9-alpine3.22, 25.9.0-alpine3.22, alpine3.22, current-alpine3.22
+Tags: 25-alpine3.22, 25.9-alpine3.22, 25.9.0-alpine3.22
 Architectures: amd64, arm64v8, s390x
 GitCommit: f10204b756360aa4c4913b444b591b69dd8fbd8b
 Directory: 25/alpine3.22
 
-Tags: 25-bookworm-slim, 25-slim, 25.9-bookworm-slim, 25.9-slim, 25.9.0-bookworm-slim, 25.9.0-slim, bookworm-slim, current-bookworm-slim, current-slim, slim
+Tags: 25-bookworm-slim, 25-slim, 25.9-bookworm-slim, 25.9-slim, 25.9.0-bookworm-slim, 25.9.0-slim
 Architectures: amd64, arm64v8, ppc64le, s390x
 GitCommit: f10204b756360aa4c4913b444b591b69dd8fbd8b
 Directory: 25/bookworm-slim
 
-Tags: 25-bullseye, 25.9-bullseye, 25.9.0-bullseye, bullseye, current-bullseye
+Tags: 25-bullseye, 25.9-bullseye, 25.9.0-bullseye
 Architectures: amd64, arm64v8
 GitCommit: f10204b756360aa4c4913b444b591b69dd8fbd8b
 Directory: 25/bullseye
 
-Tags: 25-bullseye-slim, 25.9-bullseye-slim, 25.9.0-bullseye-slim, bullseye-slim, current-bullseye-slim
+Tags: 25-bullseye-slim, 25.9-bullseye-slim, 25.9.0-bullseye-slim
 Architectures: amd64, arm64v8
 GitCommit: f10204b756360aa4c4913b444b591b69dd8fbd8b
 Directory: 25/bullseye-slim
 
-Tags: 25-trixie, 25.9-trixie, 25.9.0-trixie, current-trixie, trixie
+Tags: 25-trixie, 25.9-trixie, 25.9.0-trixie
 Architectures: amd64, arm64v8, ppc64le, s390x
 GitCommit: f10204b756360aa4c4913b444b591b69dd8fbd8b
 Directory: 25/trixie
 
-Tags: 25-trixie-slim, 25.9-trixie-slim, 25.9.0-trixie-slim, current-trixie-slim, trixie-slim
+Tags: 25-trixie-slim, 25.9-trixie-slim, 25.9.0-trixie-slim
 Architectures: amd64, arm64v8, ppc64le, s390x
 GitCommit: f10204b756360aa4c4913b444b591b69dd8fbd8b
 Directory: 25/trixie-slim
+
+Tags: 26, 26-trixie, 26.0, 26.0-trixie, 26.0.0, 26.0.0-trixie, current, current-trixie, latest, trixie
+Architectures: amd64, arm64v8, ppc64le, s390x
+GitCommit: 6027bae61ff1156345f00a05a814cdb1fdd17f0d
+Directory: 26/trixie
+
+Tags: 26-alpine, 26-alpine3.23, 26.0-alpine, 26.0-alpine3.23, 26.0.0-alpine, 26.0.0-alpine3.23, alpine, alpine3.23, current-alpine, current-alpine3.23
+Architectures: amd64, arm64v8
+GitCommit: 6027bae61ff1156345f00a05a814cdb1fdd17f0d
+Directory: 26/alpine3.23
+
+Tags: 26-alpine3.22, 26.0-alpine3.22, 26.0.0-alpine3.22, alpine3.22, current-alpine3.22
+Architectures: amd64, arm64v8
+GitCommit: 6027bae61ff1156345f00a05a814cdb1fdd17f0d
+Directory: 26/alpine3.22
+
+Tags: 26-bookworm, 26.0-bookworm, 26.0.0-bookworm, bookworm, current-bookworm
+Architectures: amd64, arm64v8, ppc64le, s390x
+GitCommit: 6027bae61ff1156345f00a05a814cdb1fdd17f0d
+Directory: 26/bookworm
+
+Tags: 26-bookworm-slim, 26.0-bookworm-slim, 26.0.0-bookworm-slim, bookworm-slim, current-bookworm-slim
+Architectures: amd64, arm64v8, ppc64le, s390x
+GitCommit: 6027bae61ff1156345f00a05a814cdb1fdd17f0d
+Directory: 26/bookworm-slim
+
+Tags: 26-bullseye, 26.0-bullseye, 26.0.0-bullseye, bullseye, current-bullseye
+Architectures: amd64, arm64v8
+GitCommit: 6027bae61ff1156345f00a05a814cdb1fdd17f0d
+Directory: 26/bullseye
+
+Tags: 26-bullseye-slim, 26.0-bullseye-slim, 26.0.0-bullseye-slim, bullseye-slim, current-bullseye-slim
+Architectures: amd64, arm64v8
+GitCommit: 6027bae61ff1156345f00a05a814cdb1fdd17f0d
+Directory: 26/bullseye-slim
+
+Tags: 26-slim, 26-trixie-slim, 26.0-slim, 26.0-trixie-slim, 26.0.0-slim, 26.0.0-trixie-slim, current-slim, current-trixie-slim, slim, trixie-slim
+Architectures: amd64, arm64v8, ppc64le, s390x
+GitCommit: 6027bae61ff1156345f00a05a814cdb1fdd17f0d
+Directory: 26/trixie-slim
diff --git a/_bashbrew-list b/_bashbrew-list
index 2b036a7..dc46b02 100644
--- a/_bashbrew-list
+++ b/_bashbrew-list
@@ -97,6 +97,39 @@ node:25.9.0-bullseye-slim
 node:25.9.0-slim
 node:25.9.0-trixie
 node:25.9.0-trixie-slim
+node:26
+node:26-alpine
+node:26-alpine3.22
+node:26-alpine3.23
+node:26-bookworm
+node:26-bookworm-slim
+node:26-bullseye
+node:26-bullseye-slim
+node:26-slim
+node:26-trixie
+node:26-trixie-slim
+node:26.0
+node:26.0-alpine
+node:26.0-alpine3.22
+node:26.0-alpine3.23
+node:26.0-bookworm
+node:26.0-bookworm-slim
+node:26.0-bullseye
+node:26.0-bullseye-slim
+node:26.0-slim
+node:26.0-trixie
+node:26.0-trixie-slim
+node:26.0.0
+node:26.0.0-alpine
+node:26.0.0-alpine3.22
+node:26.0.0-alpine3.23
+node:26.0.0-bookworm
+node:26.0.0-bookworm-slim
+node:26.0.0-bullseye
+node:26.0.0-bullseye-slim
+node:26.0.0-slim
+node:26.0.0-trixie
+node:26.0.0-trixie-slim
 node:alpine
 node:alpine3.22
 node:alpine3.23
diff --git a/_bashbrew-list-build-order b/_bashbrew-list-build-order
index bda604a..ba9d32c 100644
--- a/_bashbrew-list-build-order
+++ b/_bashbrew-list-build-order
@@ -1,5 +1,15 @@
+node:25.9.0-alpine3.22
+node:25.9.0-alpine3.23
+node:25.9.0-bookworm
+node:25.9.0-bullseye
+node:25.9.0-bullseye-slim
+node:25.9.0-slim
+node:25.9.0-trixie
+node:25.9.0-trixie-slim
 node:current-alpine3.22
 node:current-alpine3.23
+node:current-bookworm
+node:current-bookworm-slim
 node:current-bullseye
 node:current-bullseye-slim
 node:jod-alpine3.22
@@ -10,7 +20,6 @@ node:jod-bullseye-slim
 node:jod-slim
 node:jod-trixie
 node:jod-trixie-slim
-node:latest
 node:lts-alpine3.22
 node:lts-alpine3.23
 node:lts-bullseye
@@ -19,6 +28,5 @@ node:lts-krypton
 node:lts-slim
 node:lts-trixie
 node:lts-trixie-slim
-node:slim
 node:trixie
 node:trixie-slim
diff --git a/node_current-alpine3.22/Dockerfile b/node_25.9.0-alpine3.22/Dockerfile
similarity index 100%
copy from node_current-alpine3.22/Dockerfile
copy to node_25.9.0-alpine3.22/Dockerfile
diff --git a/node_latest/docker-entrypoint.sh b/node_25.9.0-alpine3.22/docker-entrypoint.sh
similarity index 100%
rename from node_latest/docker-entrypoint.sh
rename to node_25.9.0-alpine3.22/docker-entrypoint.sh
diff --git a/node_current-alpine3.23/Dockerfile b/node_25.9.0-alpine3.23/Dockerfile
similarity index 100%
copy from node_current-alpine3.23/Dockerfile
copy to node_25.9.0-alpine3.23/Dockerfile
diff --git a/node_slim/docker-entrypoint.sh b/node_25.9.0-alpine3.23/docker-entrypoint.sh
similarity index 100%
rename from node_slim/docker-entrypoint.sh
rename to node_25.9.0-alpine3.23/docker-entrypoint.sh
diff --git a/node_latest/Dockerfile b/node_25.9.0-bookworm/Dockerfile
similarity index 100%
copy from node_latest/Dockerfile
copy to node_25.9.0-bookworm/Dockerfile
diff --git a/node_current-alpine3.22/docker-entrypoint.sh b/node_25.9.0-bookworm/docker-entrypoint.sh
similarity index 100%
copy from node_current-alpine3.22/docker-entrypoint.sh
copy to node_25.9.0-bookworm/docker-entrypoint.sh
diff --git a/node_current-bullseye-slim/Dockerfile b/node_25.9.0-bullseye-slim/Dockerfile
similarity index 100%
copy from node_current-bullseye-slim/Dockerfile
copy to node_25.9.0-bullseye-slim/Dockerfile
diff --git a/node_current-alpine3.22/docker-entrypoint.sh b/node_25.9.0-bullseye-slim/docker-entrypoint.sh
similarity index 100%
copy from node_current-alpine3.22/docker-entrypoint.sh
copy to node_25.9.0-bullseye-slim/docker-entrypoint.sh
diff --git a/node_current-bullseye/Dockerfile b/node_25.9.0-bullseye/Dockerfile
similarity index 100%
copy from node_current-bullseye/Dockerfile
copy to node_25.9.0-bullseye/Dockerfile
diff --git a/node_current-alpine3.22/docker-entrypoint.sh b/node_25.9.0-bullseye/docker-entrypoint.sh
similarity index 100%
copy from node_current-alpine3.22/docker-entrypoint.sh
copy to node_25.9.0-bullseye/docker-entrypoint.sh
diff --git a/node_slim/Dockerfile b/node_25.9.0-slim/Dockerfile
similarity index 100%
copy from node_slim/Dockerfile
copy to node_25.9.0-slim/Dockerfile
diff --git a/node_current-alpine3.22/docker-entrypoint.sh b/node_25.9.0-slim/docker-entrypoint.sh
similarity index 100%
copy from node_current-alpine3.22/docker-entrypoint.sh
copy to node_25.9.0-slim/docker-entrypoint.sh
diff --git a/node_trixie-slim/Dockerfile b/node_25.9.0-trixie-slim/Dockerfile
similarity index 100%
copy from node_trixie-slim/Dockerfile
copy to node_25.9.0-trixie-slim/Dockerfile
diff --git a/node_current-alpine3.22/docker-entrypoint.sh b/node_25.9.0-trixie-slim/docker-entrypoint.sh
similarity index 100%
copy from node_current-alpine3.22/docker-entrypoint.sh
copy to node_25.9.0-trixie-slim/docker-entrypoint.sh
diff --git a/node_trixie/Dockerfile b/node_25.9.0-trixie/Dockerfile
similarity index 100%
copy from node_trixie/Dockerfile
copy to node_25.9.0-trixie/Dockerfile
diff --git a/node_current-alpine3.22/docker-entrypoint.sh b/node_25.9.0-trixie/docker-entrypoint.sh
similarity index 100%
copy from node_current-alpine3.22/docker-entrypoint.sh
copy to node_25.9.0-trixie/docker-entrypoint.sh
diff --git a/node_current-alpine3.22/Dockerfile b/node_current-alpine3.22/Dockerfile
index e5bf11c..c7dfc35 100644
--- a/node_current-alpine3.22/Dockerfile
+++ b/node_current-alpine3.22/Dockerfile
@@ -1,6 +1,6 @@
 FROM alpine:3.22
 
-ENV NODE_VERSION=25.9.0
+ENV NODE_VERSION=26.0.0
 
 RUN addgroup -g 1000 node \
     && adduser -u 1000 -G node -s /bin/sh -D node \
@@ -10,7 +10,7 @@ RUN addgroup -g 1000 node \
         curl \
     && ARCH= OPENSSL_ARCH='linux*' && alpineArch="$(apk --print-arch)" \
       && case "${alpineArch##*-}" in \
-        x86_64) ARCH='x64' CHECKSUM="46dfaea08624f9cb9d439d603784b2751ab4d7700c81c26604c032a4dc4e74a1" OPENSSL_ARCH=linux-x86_64;; \
+        x86_64) ARCH='x64' CHECKSUM="3c4f13c4b3e31f59e1e4a58dccdfacebc5f2a1be2798c16246e7720534bb1aaa" OPENSSL_ARCH=linux-x86_64;; \
         x86) OPENSSL_ARCH=linux-elf;; \
         aarch64) OPENSSL_ARCH=linux-aarch64;; \
         arm*) OPENSSL_ARCH=linux-armv4;; \
@@ -78,31 +78,6 @@ RUN addgroup -g 1000 node \
   && npm --version \
   && rm -rf /tmp/*
 
-ENV YARN_VERSION=1.22.22
-
-RUN apk add --no-cache --virtual .build-deps-yarn curl gnupg tar \
-  # 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 \
-  && apk del .build-deps-yarn \
-  # smoke test
-  && yarn --version \
-  && rm -rf /tmp/*
 
 COPY docker-entrypoint.sh /usr/local/bin/
 ENTRYPOINT ["docker-entrypoint.sh"]
diff --git a/node_current-alpine3.23/Dockerfile b/node_current-alpine3.23/Dockerfile
index 94090e5..ea1819e 100644
--- a/node_current-alpine3.23/Dockerfile
+++ b/node_current-alpine3.23/Dockerfile
@@ -1,6 +1,6 @@
 FROM alpine:3.23
 
-ENV NODE_VERSION=25.9.0
+ENV NODE_VERSION=26.0.0
 
 RUN addgroup -g 1000 node \
     && adduser -u 1000 -G node -s /bin/sh -D node \
@@ -10,7 +10,7 @@ RUN addgroup -g 1000 node \
         curl \
     && ARCH= OPENSSL_ARCH='linux*' && alpineArch="$(apk --print-arch)" \
       && case "${alpineArch##*-}" in \
-        x86_64) ARCH='x64' CHECKSUM="46dfaea08624f9cb9d439d603784b2751ab4d7700c81c26604c032a4dc4e74a1" OPENSSL_ARCH=linux-x86_64;; \
+        x86_64) ARCH='x64' CHECKSUM="3c4f13c4b3e31f59e1e4a58dccdfacebc5f2a1be2798c16246e7720534bb1aaa" OPENSSL_ARCH=linux-x86_64;; \
         x86) OPENSSL_ARCH=linux-elf;; \
         aarch64) OPENSSL_ARCH=linux-aarch64;; \
         arm*) OPENSSL_ARCH=linux-armv4;; \
@@ -78,31 +78,6 @@ RUN addgroup -g 1000 node \
   && npm --version \
   && rm -rf /tmp/*
 
-ENV YARN_VERSION=1.22.22
-
-RUN apk add --no-cache --virtual .build-deps-yarn curl gnupg tar \
-  # 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 \
-  && apk del .build-deps-yarn \
-  # smoke test
-  && yarn --version \
-  && rm -rf /tmp/*
 
 COPY docker-entrypoint.sh /usr/local/bin/
 ENTRYPOINT ["docker-entrypoint.sh"]
diff --git a/node_slim/Dockerfile b/node_current-bookworm-slim/Dockerfile
similarity index 63%
rename from node_slim/Dockerfile
rename to node_current-bookworm-slim/Dockerfile
index 7d3a858..aa75ddb 100644
--- a/node_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=25.9.0
+ENV NODE_VERSION=26.0.0
 
 RUN ARCH= OPENSSL_ARCH= && dpkgArch="$(dpkg --print-architecture)" \
     && case "${dpkgArch##*-}" in \
@@ -60,43 +60,6 @@ RUN ARCH= OPENSSL_ARCH= && dpkgArch="$(dpkg --print-architecture)" \
     && 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"]
diff --git a/node_current-alpine3.22/docker-entrypoint.sh b/node_current-bookworm-slim/docker-entrypoint.sh
similarity index 100%
copy from node_current-alpine3.22/docker-entrypoint.sh
copy to node_current-bookworm-slim/docker-entrypoint.sh
diff --git a/node_latest/Dockerfile b/node_current-bookworm/Dockerfile
similarity index 64%
rename from node_latest/Dockerfile
rename to node_current-bookworm/Dockerfile
index 6be3161..af12299 100644
--- a/node_latest/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=25.9.0
+ENV NODE_VERSION=26.0.0
 
 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \
   && case "${dpkgArch##*-}" in \
@@ -46,30 +46,6 @@ RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \
   && 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"]
diff --git a/node_current-alpine3.22/docker-entrypoint.sh b/node_current-bookworm/docker-entrypoint.sh
similarity index 100%
copy from node_current-alpine3.22/docker-entrypoint.sh
copy to node_current-bookworm/docker-entrypoint.sh
diff --git a/node_current-bullseye-slim/Dockerfile b/node_current-bullseye-slim/Dockerfile
index de714ee..acc1935 100644
--- a/node_current-bullseye-slim/Dockerfile
+++ b/node_current-bullseye-slim/Dockerfile
@@ -3,7 +3,7 @@ FROM debian:bullseye-slim
 RUN groupadd --gid 1000 node \
   && useradd --uid 1000 --gid node --shell /bin/bash --create-home node
 
-ENV NODE_VERSION=25.9.0
+ENV NODE_VERSION=26.0.0
 
 RUN ARCH= OPENSSL_ARCH= && dpkgArch="$(dpkg --print-architecture)" \
     && case "${dpkgArch##*-}" in \
@@ -60,43 +60,6 @@ RUN ARCH= OPENSSL_ARCH= && dpkgArch="$(dpkg --print-architecture)" \
     && 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"]
diff --git a/node_current-bullseye/Dockerfile b/node_current-bullseye/Dockerfile
index 4286794..11040d5 100644
--- a/node_current-bullseye/Dockerfile
+++ b/node_current-bullseye/Dockerfile
@@ -3,7 +3,7 @@ FROM buildpack-deps:bullseye
 RUN groupadd --gid 1000 node \
   && useradd --uid 1000 --gid node --shell /bin/bash --create-home node
 
-ENV NODE_VERSION=25.9.0
+ENV NODE_VERSION=26.0.0
 
 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \
   && case "${dpkgArch##*-}" in \
@@ -46,30 +46,6 @@ RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \
   && 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"]
diff --git a/node_trixie-slim/Dockerfile b/node_trixie-slim/Dockerfile
index 92ba49c..743ddf0 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=25.9.0
+ENV NODE_VERSION=26.0.0
 
 RUN ARCH= OPENSSL_ARCH= && dpkgArch="$(dpkg --print-architecture)" \
     && case "${dpkgArch##*-}" in \
@@ -60,43 +60,6 @@ RUN ARCH= OPENSSL_ARCH= && dpkgArch="$(dpkg --print-architecture)" \
     && 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"]
diff --git a/node_trixie/Dockerfile b/node_trixie/Dockerfile
index 2225b57..8775749 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=25.9.0
+ENV NODE_VERSION=26.0.0
 
 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \
   && case "${dpkgArch##*-}" in \
@@ -46,30 +46,6 @@ RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \
   && 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"]

Relevant Maintainers:

@nschonni

nschonni commented May 6, 2026

Copy link
Copy Markdown
Contributor

Not sure why thte latest and slim tags are getting removed, but I'm not sure that's a blocker

@MikeMcC399

MikeMcC399 commented May 6, 2026 •

Copy link
Copy Markdown
Contributor

Not sure why thte latest and slim tags are getting removed, but I'm not sure that's a blocker

I can see latest here:

Tags: 26, 26-trixie, 26.0, 26.0-trixie, 26.0.0, 26.0.0-trixie, current, current-trixie, latest, trixie

and slim here:

Tags: 26-slim, 26-trixie-slim, 26.0-slim, 26.0-trixie-slim, 26.0.0-slim, 26.0.0-trixie-slim, current-slim, current-trixie-slim, slim, trixie-slim

They have moved from bookworm to trixie (since we decided that trixie should be the new default for Node.js 26 - see nodejs/docker-node#2435 (comment)) see https://github.com/nodejs/docker-node/blob/e9ad2939e27f622333a63cb4a4a84588e8b43bba/versions.json#L9

@shirshak55

Copy link
Copy Markdown

Is node js 26 released on docker or will be released after this PR is merged? I am unable to find 26-slim in docker hub.

@MikeMcC399

Copy link
Copy Markdown
Contributor

@shirshak55

Is node js 26 released on docker or will be released after this PR is merged? I am unable to find 26-slim in docker hub.

First of all this PR needs to be approved, then after it is merged, the build process starts, which can take several hours.

You can find a description on https://github.com/nodejs/docker-node#release-availability.

There were some problems yesterday on the base release caused by GitHub Actions issues which caused a delay. Hopefully it shouldn't be too long now!

@yosifkit
yosifkit merged commit a455575 into docker-library:master May 6, 2026
37 checks passed
@yosifkit

yosifkit commented May 6, 2026 •

Copy link
Copy Markdown
Member

Most Node 26 images and architectures should be up on Docker Hub now. A few stragglers (arm64v8 alpine images) are still building, and I'll be watching them to make sure they get pushed as soon as possible.

If you pull a non-specific tag like node:alpine on arm64v8, you'll still be getting Node 25 until the images are ready. And if you pull node:26-alpine on arm64v8, you'll get "no match for platform" until they are pushed.

Edit: should all be updated now! ❤️ 🎉

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants