From 460c2584988db4c22b9e1b7cc0c66ef85f193358 Mon Sep 17 00:00:00 2001 From: Sarah Chen Date: Tue, 13 Oct 2026 12:09:45 -0400 Subject: [PATCH 1/2] Update tip to 27 --- Dockerfile | 11 +---------- README.md | 3 +-- build | 7 ++----- scripts/delete-test-mirror-entries.sh | 3 +-- scripts/get-image-digests.sh | 3 +-- 5 files changed, 6 insertions(+), 21 deletions(-) diff --git a/Dockerfile b/Dockerfile index 55393b0..6996067 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,7 +9,7 @@ ARG LATEST_VERSION ARG ALL_JDK_STAGE=all-jdk-amd64 ARG FULL_STAGE=full-amd64 -FROM eclipse-temurin:${LATEST_VERSION}-jdk-noble AS temurin-latest +FROM eclipse-temurin:${LATEST_VERSION}-jdk-resolute AS temurin-latest # Intermediate image used to prune cruft from JDKs and squash them all. FROM ubuntu:24.04 AS all-jdk-common @@ -60,9 +60,6 @@ COPY --from=eclipse-temurin:11-jdk-noble /opt/java/openjdk /usr/lib/jvm/11 COPY --from=eclipse-temurin:17-jdk-noble /opt/java/openjdk /usr/lib/jvm/17 COPY --from=eclipse-temurin:21-jdk-noble /opt/java/openjdk /usr/lib/jvm/21 COPY --from=eclipse-temurin:25-jdk-noble /opt/java/openjdk /usr/lib/jvm/25 -# Java 27 TODO: remove following two lines after GA -COPY --from=eclipse-temurin:26-jdk-noble /opt/java/openjdk /usr/lib/jvm/26 -COPY --from=openjdk:27-rc-jdk-bookworm /usr/local/openjdk-27 /usr/lib/jvm/27 COPY --from=temurin-latest /opt/java/openjdk /usr/lib/jvm/${LATEST_VERSION} COPY --from=azul/zulu-openjdk:8 /usr/lib/jvm/zulu8 /usr/lib/jvm/zulu8 @@ -129,9 +126,6 @@ COPY --from=all-jdk /usr/lib/jvm/11 /usr/lib/jvm/11 COPY --from=all-jdk /usr/lib/jvm/17 /usr/lib/jvm/17 COPY --from=all-jdk /usr/lib/jvm/21 /usr/lib/jvm/21 COPY --from=all-jdk /usr/lib/jvm/25 /usr/lib/jvm/25 -# Java 27 TODO: remove following two lines after GA -COPY --from=all-jdk /usr/lib/jvm/26 /usr/lib/jvm/26 -COPY --from=all-jdk /usr/lib/jvm/27 /usr/lib/jvm/27 COPY --from=all-jdk /usr/lib/jvm/${LATEST_VERSION} /usr/lib/jvm/${LATEST_VERSION} # Base image with minimum requirements to build the project. @@ -237,9 +231,6 @@ ENV JAVA_11_HOME=/usr/lib/jvm/11 ENV JAVA_17_HOME=/usr/lib/jvm/17 ENV JAVA_21_HOME=/usr/lib/jvm/21 ENV JAVA_25_HOME=/usr/lib/jvm/25 -# Java 27 TODO: remove following two lines after GA -ENV JAVA_26_HOME=/usr/lib/jvm/26 -ENV JAVA_27_HOME=/usr/lib/jvm/27 ENV JAVA_${LATEST_VERSION}_HOME=/usr/lib/jvm/${LATEST_VERSION} ENV JAVA_HOME=${JAVA_8_HOME} diff --git a/README.md b/README.md index 2774082..7533e11 100644 --- a/README.md +++ b/README.md @@ -7,10 +7,9 @@ This repository holds the original Docker images for continuous integration jobs Pre-built images are available in the [GitHub Container Registry](https://github.com/DataDog/dd-trace-java-docker-build/pkgs/container/dd-trace-java-docker-build). Image variants are available on a per JDK basis: -- The `base` variant and its aliases — `8`, `11`, `17`, `21`, `25`, and `tip` — contain the base Eclipse Temurin JDK 8, 11, 17, 21, 25, and tip JDK version releases. +- The `base` variant and its aliases — `8`, `11`, `17`, `21`, `25`, and `tip` — contain the base Eclipse Temurin JDK 8, 11, 17, 21, 25, and 27 releases. The `tip` alias currently refers to JDK 27. - The `zulu8`, `zulu11`, `oracle8`, `ibm8`, `semeru8`, `semeru11`, `semeru17`, `graalvm17`, `graalvm21`, and `graalvm25` variants each contain the base JDKs in addition to the specific JDK from their name. - The `latest` variant contains the base JDKs and all of the specific JDKs above. -- JDK `27` RC image is currently being tested. All variants are published as multi-arch manifests covering `linux/amd64` and `linux/arm64`, so the same tag (e.g. `base`, `zulu8`, `tip`) resolves to the correct image for the host architecture. The `7` and `ibm8` variants are amd64-only because the upstream JDK images are not available for arm64; diff --git a/build b/build index df2f068..c3a5ab4 100755 --- a/build +++ b/build @@ -3,7 +3,7 @@ set -eu readonly IMAGE_NAME="ghcr.io/datadog/dd-trace-java-docker-build" -readonly BASE_VARIANTS=(8 11 17 21 25 27 tip) # Java 27 TODO: move tip to 27 after GA +readonly BASE_VARIANTS=(8 11 17 21 25 tip) readonly ALL_VARIANTS=( 7 @@ -22,7 +22,7 @@ readonly ALL_VARIANTS=( # Variants whose upstream JDK images are not published for arm64. readonly AMD64_ONLY_VARIANTS=(7 ibm8) -readonly LATEST_VERSION="26" # Java 27 TODO: update to 27 after GA +readonly LATEST_VERSION="27" readonly PLATFORM="${PLATFORM:-linux/amd64}" readonly DIGESTS_DIR="${DIGESTS_DIR:-./digests}" @@ -210,9 +210,6 @@ function do_inner_test() { "$JAVA_17_HOME/bin/java" -version "$JAVA_21_HOME/bin/java" -version "$JAVA_25_HOME/bin/java" -version - # Java 27 TODO: remove following two lines after GA - "$JAVA_26_HOME/bin/java" -version - "$JAVA_27_HOME/bin/java" -version "${!java_latest_home}/bin/java" -version if [[ $variant != base && $variant != latest ]]; then if [[ $variant == "tip" ]]; then diff --git a/scripts/delete-test-mirror-entries.sh b/scripts/delete-test-mirror-entries.sh index 669d4f0..2c57ac2 100644 --- a/scripts/delete-test-mirror-entries.sh +++ b/scripts/delete-test-mirror-entries.sh @@ -12,8 +12,7 @@ set -euo pipefail readonly SOURCE_PREFIX="ghcr.io/datadog/dd-trace-java-docker-build" readonly DEST_REPO="dd-trace-java-docker-build" -# Java 27 TODO: move tip to 27 after GA -readonly CI_VARIANTS=(base 7 8 11 17 21 25 27 tip zulu8 zulu11 oracle8 ibm8 semeru8 semeru11 semeru17 graalvm17 graalvm21 graalvm25) +readonly CI_VARIANTS=(base 7 8 11 17 21 25 tip zulu8 zulu11 oracle8 ibm8 semeru8 semeru11 semeru17 graalvm17 graalvm21 graalvm25) if ! [[ "${PR_NUMBER}" =~ ^[0-9]+$ ]]; then echo "::error::PR_NUMBER must be numeric (got: '${PR_NUMBER}')" >&2 diff --git a/scripts/get-image-digests.sh b/scripts/get-image-digests.sh index f87cf82..474d0ad 100755 --- a/scripts/get-image-digests.sh +++ b/scripts/get-image-digests.sh @@ -10,8 +10,7 @@ set -euo pipefail -# Java 27 TODO: move tip to 27 after GA -readonly CI_VARIANTS=(base 7 8 11 17 21 25 27 tip zulu8 zulu11 oracle8 ibm8 semeru8 semeru11 semeru17 graalvm17 graalvm21 graalvm25) +readonly CI_VARIANTS=(base 7 8 11 17 21 25 tip zulu8 zulu11 oracle8 ibm8 semeru8 semeru11 semeru17 graalvm17 graalvm21 graalvm25) # update_digest TAG DIGEST FILE # Finds the line "source: ...:TAG" and updates the digest on the following line. From dafddb0028c2f39da3a827b93e7a00d25c541c1e Mon Sep 17 00:00:00 2001 From: Sarah Chen Date: Tue, 13 Oct 2026 12:11:21 -0400 Subject: [PATCH 2/2] Update to resolute base image --- Dockerfile | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/Dockerfile b/Dockerfile index 6996067..209d30a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -12,7 +12,7 @@ ARG FULL_STAGE=full-amd64 FROM eclipse-temurin:${LATEST_VERSION}-jdk-resolute AS temurin-latest # Intermediate image used to prune cruft from JDKs and squash them all. -FROM ubuntu:24.04 AS all-jdk-common +FROM ubuntu:resolute AS all-jdk-common ARG LATEST_VERSION ARG TARGETARCH @@ -55,19 +55,19 @@ EOT ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8' -COPY --from=eclipse-temurin:8-jdk-noble /opt/java/openjdk /usr/lib/jvm/8 -COPY --from=eclipse-temurin:11-jdk-noble /opt/java/openjdk /usr/lib/jvm/11 -COPY --from=eclipse-temurin:17-jdk-noble /opt/java/openjdk /usr/lib/jvm/17 -COPY --from=eclipse-temurin:21-jdk-noble /opt/java/openjdk /usr/lib/jvm/21 -COPY --from=eclipse-temurin:25-jdk-noble /opt/java/openjdk /usr/lib/jvm/25 +COPY --from=eclipse-temurin:8-jdk-resolute /opt/java/openjdk /usr/lib/jvm/8 +COPY --from=eclipse-temurin:11-jdk-resolute /opt/java/openjdk /usr/lib/jvm/11 +COPY --from=eclipse-temurin:17-jdk-resolute /opt/java/openjdk /usr/lib/jvm/17 +COPY --from=eclipse-temurin:21-jdk-resolute /opt/java/openjdk /usr/lib/jvm/21 +COPY --from=eclipse-temurin:25-jdk-resolute /opt/java/openjdk /usr/lib/jvm/25 COPY --from=temurin-latest /opt/java/openjdk /usr/lib/jvm/${LATEST_VERSION} COPY --from=azul/zulu-openjdk:8 /usr/lib/jvm/zulu8 /usr/lib/jvm/zulu8 COPY --from=azul/zulu-openjdk:11 /usr/lib/jvm/zulu11 /usr/lib/jvm/zulu11 -COPY --from=ibm-semeru-runtimes:open-8-jdk-noble /opt/java/openjdk /usr/lib/jvm/semeru8 -COPY --from=ibm-semeru-runtimes:open-11-jdk-noble /opt/java/openjdk /usr/lib/jvm/semeru11 -COPY --from=ibm-semeru-runtimes:open-17-jdk-noble /opt/java/openjdk /usr/lib/jvm/semeru17 +COPY --from=ibm-semeru-runtimes:open-8-jdk-resolute /opt/java/openjdk /usr/lib/jvm/semeru8 +COPY --from=ibm-semeru-runtimes:open-11-jdk-resolute /opt/java/openjdk /usr/lib/jvm/semeru11 +COPY --from=ibm-semeru-runtimes:open-17-jdk-resolute /opt/java/openjdk /usr/lib/jvm/semeru17 COPY --from=ghcr.io/graalvm/native-image-community:17-ol9 /usr/lib64/graalvm/graalvm-community-java17 /usr/lib/jvm/graalvm17 COPY --from=ghcr.io/graalvm/native-image-community:21-ol9 /usr/lib64/graalvm/graalvm-community-java21 /usr/lib/jvm/graalvm21 @@ -130,7 +130,7 @@ COPY --from=all-jdk /usr/lib/jvm/${LATEST_VERSION} /usr/lib/jvm/${LATEST_VERSION # Base image with minimum requirements to build the project. # Based on the latest Ubuntu LTS image. -FROM ubuntu:24.04 AS base +FROM ubuntu:resolute AS base ARG LATEST_VERSION ARG DATADOG_CI_VERSION=5.17.0 ARG TARGETARCH