From 257e0a17a1aebe245362cd2b7476069d5f8beb69 Mon Sep 17 00:00:00 2001 From: Ezechiele Spina Date: Fri, 17 Oct 2025 09:26:59 +0200 Subject: [PATCH 1/4] feat: add java 25 images --- 25/20/Dockerfile | 26 ++++++++++++++++++++++++++ 25/20/alpine/Dockerfile | 16 ++++++++++++++++ 25/22/Dockerfile | 26 ++++++++++++++++++++++++++ 25/22/alpine/Dockerfile | 15 +++++++++++++++ 25/24/Dockerfile | 26 ++++++++++++++++++++++++++ 25/24/alpine/Dockerfile | 15 +++++++++++++++ README.md | 2 +- 7 files changed, 125 insertions(+), 1 deletion(-) create mode 100644 25/20/Dockerfile create mode 100644 25/20/alpine/Dockerfile create mode 100644 25/22/Dockerfile create mode 100644 25/22/alpine/Dockerfile create mode 100644 25/24/Dockerfile create mode 100644 25/24/alpine/Dockerfile diff --git a/25/20/Dockerfile b/25/20/Dockerfile new file mode 100644 index 0000000..f9b35b7 --- /dev/null +++ b/25/20/Dockerfile @@ -0,0 +1,26 @@ +FROM eclipse-temurin:25-jdk +LABEL maintainer="Tim Brust " + +ARG REFRESHED_AT +ENV REFRESHED_AT=$REFRESHED_AT +ARG NODE_MAJOR=20 + +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +RUN printf 'Package: nodejs\nPin: origin deb.nodesource.com\nPin-Priority: 1001' > /etc/apt/preferences.d/nodesource \ + && mkdir -p /etc/apt/keyrings \ + && apt-get update -qq \ + && apt-get install -qq --no-install-recommends \ + gpg \ + gpg-agent \ + && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg \ + && echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list \ + && curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \ + && echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list \ + && apt-get update -qq \ + && apt-get install -qq --no-install-recommends \ + nodejs \ + yarn \ + git \ + && apt-get upgrade -qq \ + && rm -rf /var/lib/apt/lists/* diff --git a/25/20/alpine/Dockerfile b/25/20/alpine/Dockerfile new file mode 100644 index 0000000..764bb7c --- /dev/null +++ b/25/20/alpine/Dockerfile @@ -0,0 +1,16 @@ +FROM eclipse-temurin:25-jdk-alpine +LABEL maintainer="Tim Brust " + +ARG REFRESHED_AT +ENV REFRESHED_AT=$REFRESHED_AT + +RUN echo @old-stable https://dl-cdn.alpinelinux.org/alpine/v3.20/community >> /etc/apk/repositories \ + && echo @old-stable https://dl-cdn.alpinelinux.org/alpine/v3.20/main >> /etc/apk/repositories \ + && apk -U upgrade \ + && apk add --no-cache \ + ada-libs@old-stable \ + nodejs@old-stable \ + npm@old-stable \ + yarn \ + curl \ + git diff --git a/25/22/Dockerfile b/25/22/Dockerfile new file mode 100644 index 0000000..7f1ab79 --- /dev/null +++ b/25/22/Dockerfile @@ -0,0 +1,26 @@ +FROM eclipse-temurin:25-jdk +LABEL maintainer="Tim Brust " + +ARG REFRESHED_AT +ENV REFRESHED_AT=$REFRESHED_AT +ARG NODE_MAJOR=22 + +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +RUN printf 'Package: nodejs\nPin: origin deb.nodesource.com\nPin-Priority: 1001' > /etc/apt/preferences.d/nodesource \ + && mkdir -p /etc/apt/keyrings \ + && apt-get update -qq \ + && apt-get install -qq --no-install-recommends \ + gpg \ + gpg-agent \ + && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg \ + && echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list \ + && curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \ + && echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list \ + && apt-get update -qq \ + && apt-get install -qq --no-install-recommends \ + nodejs \ + yarn \ + git \ + && apt-get upgrade -qq \ + && rm -rf /var/lib/apt/lists/* diff --git a/25/22/alpine/Dockerfile b/25/22/alpine/Dockerfile new file mode 100644 index 0000000..5b2ed77 --- /dev/null +++ b/25/22/alpine/Dockerfile @@ -0,0 +1,15 @@ +FROM eclipse-temurin:25-jdk-alpine +LABEL maintainer="Tim Brust " + +ARG REFRESHED_AT +ENV REFRESHED_AT=$REFRESHED_AT + +RUN echo @new-stable https://dl-cdn.alpinelinux.org/alpine/v3.21/community >> /etc/apk/repositories \ + && echo @new-stable https://dl-cdn.alpinelinux.org/alpine/v3.21/main >> /etc/apk/repositories \ + && apk -U upgrade \ + && apk add --no-cache \ + nodejs@new-stable \ + npm@new-stable \ + yarn \ + curl \ + git diff --git a/25/24/Dockerfile b/25/24/Dockerfile new file mode 100644 index 0000000..6bf34f9 --- /dev/null +++ b/25/24/Dockerfile @@ -0,0 +1,26 @@ +FROM eclipse-temurin:25-jdk +LABEL maintainer="Tim Brust " + +ARG REFRESHED_AT +ENV REFRESHED_AT=$REFRESHED_AT +ARG NODE_MAJOR=24 + +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +RUN printf 'Package: nodejs\nPin: origin deb.nodesource.com\nPin-Priority: 1001' > /etc/apt/preferences.d/nodesource \ + && mkdir -p /etc/apt/keyrings \ + && apt-get update -qq \ + && apt-get install -qq --no-install-recommends \ + gpg \ + gpg-agent \ + && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg \ + && echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list \ + && curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \ + && echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list \ + && apt-get update -qq \ + && apt-get install -qq --no-install-recommends \ + nodejs \ + yarn \ + git \ + && apt-get upgrade -qq \ + && rm -rf /var/lib/apt/lists/* diff --git a/25/24/alpine/Dockerfile b/25/24/alpine/Dockerfile new file mode 100644 index 0000000..8c46ed7 --- /dev/null +++ b/25/24/alpine/Dockerfile @@ -0,0 +1,15 @@ +FROM eclipse-temurin:25-jdk-alpine +LABEL maintainer="Tim Brust " + +ARG REFRESHED_AT +ENV REFRESHED_AT=$REFRESHED_AT + +RUN echo @edge https://dl-cdn.alpinelinux.org/alpine/edge/community >> /etc/apk/repositories \ + && echo @edge https://dl-cdn.alpinelinux.org/alpine/edge/main >> /etc/apk/repositories \ + && apk -U upgrade \ + && apk add --no-cache \ + nodejs-current@edge \ + npm@edge \ + yarn \ + curl \ + git diff --git a/README.md b/README.md index 17f339f..8f74a3f 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Java (JRE or JDK version 8, 11, 17 or 21) with Node.js 20 LTS (Iron), Node.js 22 LTS (Jod) or Node.js 24 (Krypton) Dockerfile +# Java (JRE or JDK version 8, 11, 17, 21 or 25) with Node.js 20 LTS (Iron), Node.js 22 LTS (Jod) or Node.js 24 (Krypton) Dockerfile [![Docker Automated build](https://img.shields.io/docker/automated/timbru31/java-node.svg)](https://hub.docker.com/r/timbru31/java-node/) [![buildx Status](https://github.com/timbru31/docker-java-node/workflows/buildx/badge.svg)](https://github.com/timbru31/docker-java-node/actions?query=workflow%3Abuildx) From 8534845a00d25dc975cf5575ade7a58b648c9767 Mon Sep 17 00:00:00 2001 From: Ezechiele Spina Date: Fri, 17 Oct 2025 09:33:28 +0200 Subject: [PATCH 2/4] feat: add java 25 jre images --- 25/{ => jdk}/20/Dockerfile | 0 25/{ => jdk}/20/alpine/Dockerfile | 0 25/{ => jdk}/22/Dockerfile | 0 25/{ => jdk}/22/alpine/Dockerfile | 0 25/{ => jdk}/24/Dockerfile | 0 25/{ => jdk}/24/alpine/Dockerfile | 0 25/jre/20/Dockerfile | 26 ++++++++++++++++++++++++++ 25/jre/20/alpine/Dockerfile | 16 ++++++++++++++++ 25/jre/22/Dockerfile | 26 ++++++++++++++++++++++++++ 25/jre/22/alpine/Dockerfile | 15 +++++++++++++++ 25/jre/24/Dockerfile | 26 ++++++++++++++++++++++++++ 25/jre/24/alpine/Dockerfile | 15 +++++++++++++++ 12 files changed, 124 insertions(+) rename 25/{ => jdk}/20/Dockerfile (100%) rename 25/{ => jdk}/20/alpine/Dockerfile (100%) rename 25/{ => jdk}/22/Dockerfile (100%) rename 25/{ => jdk}/22/alpine/Dockerfile (100%) rename 25/{ => jdk}/24/Dockerfile (100%) rename 25/{ => jdk}/24/alpine/Dockerfile (100%) create mode 100644 25/jre/20/Dockerfile create mode 100644 25/jre/20/alpine/Dockerfile create mode 100644 25/jre/22/Dockerfile create mode 100644 25/jre/22/alpine/Dockerfile create mode 100644 25/jre/24/Dockerfile create mode 100644 25/jre/24/alpine/Dockerfile diff --git a/25/20/Dockerfile b/25/jdk/20/Dockerfile similarity index 100% rename from 25/20/Dockerfile rename to 25/jdk/20/Dockerfile diff --git a/25/20/alpine/Dockerfile b/25/jdk/20/alpine/Dockerfile similarity index 100% rename from 25/20/alpine/Dockerfile rename to 25/jdk/20/alpine/Dockerfile diff --git a/25/22/Dockerfile b/25/jdk/22/Dockerfile similarity index 100% rename from 25/22/Dockerfile rename to 25/jdk/22/Dockerfile diff --git a/25/22/alpine/Dockerfile b/25/jdk/22/alpine/Dockerfile similarity index 100% rename from 25/22/alpine/Dockerfile rename to 25/jdk/22/alpine/Dockerfile diff --git a/25/24/Dockerfile b/25/jdk/24/Dockerfile similarity index 100% rename from 25/24/Dockerfile rename to 25/jdk/24/Dockerfile diff --git a/25/24/alpine/Dockerfile b/25/jdk/24/alpine/Dockerfile similarity index 100% rename from 25/24/alpine/Dockerfile rename to 25/jdk/24/alpine/Dockerfile diff --git a/25/jre/20/Dockerfile b/25/jre/20/Dockerfile new file mode 100644 index 0000000..9efda7d --- /dev/null +++ b/25/jre/20/Dockerfile @@ -0,0 +1,26 @@ +FROM eclipse-temurin:25-jre +LABEL maintainer="Tim Brust " + +ARG REFRESHED_AT +ENV REFRESHED_AT=$REFRESHED_AT +ARG NODE_MAJOR=20 + +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +RUN printf 'Package: nodejs\nPin: origin deb.nodesource.com\nPin-Priority: 1001' > /etc/apt/preferences.d/nodesource \ + && mkdir -p /etc/apt/keyrings \ + && apt-get update -qq \ + && apt-get install -qq --no-install-recommends \ + gpg \ + gpg-agent \ + && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg \ + && echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list \ + && curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \ + && echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list \ + && apt-get update -qq \ + && apt-get install -qq --no-install-recommends \ + nodejs \ + yarn \ + git \ + && apt-get upgrade -qq \ + && rm -rf /var/lib/apt/lists/* diff --git a/25/jre/20/alpine/Dockerfile b/25/jre/20/alpine/Dockerfile new file mode 100644 index 0000000..630e757 --- /dev/null +++ b/25/jre/20/alpine/Dockerfile @@ -0,0 +1,16 @@ +FROM eclipse-temurin:21-jre-alpine +LABEL maintainer="Tim Brust " + +ARG REFRESHED_AT +ENV REFRESHED_AT=$REFRESHED_AT + +RUN echo @old-stable https://dl-cdn.alpinelinux.org/alpine/v3.20/community >> /etc/apk/repositories \ + && echo @old-stable https://dl-cdn.alpinelinux.org/alpine/v3.20/main >> /etc/apk/repositories \ + && apk -U upgrade \ + && apk add --no-cache \ + ada-libs@old-stable \ + nodejs@old-stable \ + npm@old-stable \ + yarn \ + curl \ + git diff --git a/25/jre/22/Dockerfile b/25/jre/22/Dockerfile new file mode 100644 index 0000000..23236e6 --- /dev/null +++ b/25/jre/22/Dockerfile @@ -0,0 +1,26 @@ +FROM eclipse-temurin:25-jre +LABEL maintainer="Tim Brust " + +ARG REFRESHED_AT +ENV REFRESHED_AT=$REFRESHED_AT +ARG NODE_MAJOR=22 + +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +RUN printf 'Package: nodejs\nPin: origin deb.nodesource.com\nPin-Priority: 1001' > /etc/apt/preferences.d/nodesource \ + && mkdir -p /etc/apt/keyrings \ + && apt-get update -qq \ + && apt-get install -qq --no-install-recommends \ + gpg \ + gpg-agent \ + && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg \ + && echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list \ + && curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \ + && echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list \ + && apt-get update -qq \ + && apt-get install -qq --no-install-recommends \ + nodejs \ + yarn \ + git \ + && apt-get upgrade -qq \ + && rm -rf /var/lib/apt/lists/* diff --git a/25/jre/22/alpine/Dockerfile b/25/jre/22/alpine/Dockerfile new file mode 100644 index 0000000..7e6077a --- /dev/null +++ b/25/jre/22/alpine/Dockerfile @@ -0,0 +1,15 @@ +FROM eclipse-temurin:25-jre-alpine +LABEL maintainer="Tim Brust " + +ARG REFRESHED_AT +ENV REFRESHED_AT=$REFRESHED_AT + +RUN echo @new-stable https://dl-cdn.alpinelinux.org/alpine/v3.21/community >> /etc/apk/repositories \ + && echo @new-stable https://dl-cdn.alpinelinux.org/alpine/v3.21/main >> /etc/apk/repositories \ + && apk -U upgrade \ + && apk add --no-cache \ + nodejs@new-stable \ + npm@new-stable \ + yarn \ + curl \ + git diff --git a/25/jre/24/Dockerfile b/25/jre/24/Dockerfile new file mode 100644 index 0000000..cccb4fc --- /dev/null +++ b/25/jre/24/Dockerfile @@ -0,0 +1,26 @@ +FROM eclipse-temurin:25-jre +LABEL maintainer="Tim Brust " + +ARG REFRESHED_AT +ENV REFRESHED_AT=$REFRESHED_AT +ARG NODE_MAJOR=24 + +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +RUN printf 'Package: nodejs\nPin: origin deb.nodesource.com\nPin-Priority: 1001' > /etc/apt/preferences.d/nodesource \ + && mkdir -p /etc/apt/keyrings \ + && apt-get update -qq \ + && apt-get install -qq --no-install-recommends \ + gpg \ + gpg-agent \ + && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg \ + && echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list \ + && curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \ + && echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list \ + && apt-get update -qq \ + && apt-get install -qq --no-install-recommends \ + nodejs \ + yarn \ + git \ + && apt-get upgrade -qq \ + && rm -rf /var/lib/apt/lists/* diff --git a/25/jre/24/alpine/Dockerfile b/25/jre/24/alpine/Dockerfile new file mode 100644 index 0000000..8adffe9 --- /dev/null +++ b/25/jre/24/alpine/Dockerfile @@ -0,0 +1,15 @@ +FROM eclipse-temurin:25-jre-alpine +LABEL maintainer="Tim Brust " + +ARG REFRESHED_AT +ENV REFRESHED_AT=$REFRESHED_AT + +RUN echo @edge https://dl-cdn.alpinelinux.org/alpine/edge/community >> /etc/apk/repositories \ + && echo @edge https://dl-cdn.alpinelinux.org/alpine/edge/main >> /etc/apk/repositories \ + && apk -U upgrade \ + && apk add --no-cache \ + nodejs-current@edge \ + npm@edge \ + yarn \ + curl \ + git From 5c91fd6b2674bb26dcb6c2b7f8a419f0892e46c5 Mon Sep 17 00:00:00 2001 From: Ezechiele Spina Date: Fri, 17 Oct 2025 09:42:54 +0200 Subject: [PATCH 3/4] fix: incorrect base image for jre 20 --- 25/jre/20/alpine/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/25/jre/20/alpine/Dockerfile b/25/jre/20/alpine/Dockerfile index 630e757..0078ca5 100644 --- a/25/jre/20/alpine/Dockerfile +++ b/25/jre/20/alpine/Dockerfile @@ -1,4 +1,4 @@ -FROM eclipse-temurin:21-jre-alpine +FROM eclipse-temurin:25-jre-alpine LABEL maintainer="Tim Brust " ARG REFRESHED_AT From 8658f03142ab0a385700e56508eddb50aa4440a2 Mon Sep 17 00:00:00 2001 From: Ezechiele Spina Date: Fri, 17 Oct 2025 16:11:41 +0200 Subject: [PATCH 4/4] ci: add java 25 in workflows --- .github/workflows/buildx.yml | 6 +++--- .github/workflows/dockerimage.yml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/buildx.yml b/.github/workflows/buildx.yml index 6716178..ca69904 100644 --- a/.github/workflows/buildx.yml +++ b/.github/workflows/buildx.yml @@ -14,7 +14,7 @@ jobs: strategy: fail-fast: false matrix: - java-version: [8, 11, 17, 21] + java-version: [8, 11, 17, 21, 25] java-type: [jdk, jre] node-version: [20, 22, 24] variant: [default, alpine] @@ -49,7 +49,7 @@ jobs: NODE_CODENAME=${{ steps.nodename.outputs.codename }} VARIANT="${{ matrix.variant == 'alpine' && '-alpine' || '' }}" TYPE="${{ matrix.java-type }}" - + # Generate tag combinations if [ "$TYPE" = "jdk" ]; then TAGS="${DOCKER_IMAGE}:${VERSION}${VARIANT}-jdk-${{ matrix.node-version }}" @@ -60,7 +60,7 @@ jobs: TAGS="${TAGS},${DOCKER_IMAGE}:${VERSION}${VARIANT}-jre-${{ matrix.node-version }}" TAGS="${TAGS},${DOCKER_IMAGE}:${VERSION}${VARIANT}-jre-${NODE_CODENAME}" fi - + echo "docker_image=${DOCKER_IMAGE}" >> $GITHUB_OUTPUT echo "version=${VERSION}" >> $GITHUB_OUTPUT echo "tags=${TAGS}" >> $GITHUB_OUTPUT diff --git a/.github/workflows/dockerimage.yml b/.github/workflows/dockerimage.yml index 13ea837..b02538b 100644 --- a/.github/workflows/dockerimage.yml +++ b/.github/workflows/dockerimage.yml @@ -13,7 +13,7 @@ jobs: strategy: fail-fast: false matrix: - java-version: [8, 11, 17, 21] + java-version: [8, 11, 17, 21, 25] java-type: [jdk, jre] node-version: [20, 22, 24] variant: [default, alpine]