From 7134c273bd095ae5e9600ce3db10186b082bc835 Mon Sep 17 00:00:00 2001 From: alexanderM91 Date: Thu, 6 Aug 2026 13:36:55 +0200 Subject: [PATCH] Optional installation of the JVM 21 --- .../common/services/jenkins/export/Dockerfile | 22 +++++++++++++++---- .../services/jenkins/export/sso/Dockerfile | 22 +++++++++++++++---- 2 files changed, 36 insertions(+), 8 deletions(-) diff --git a/images/common/services/jenkins/export/Dockerfile b/images/common/services/jenkins/export/Dockerfile index 4bda58fef..7ce5af19c 100644 --- a/images/common/services/jenkins/export/Dockerfile +++ b/images/common/services/jenkins/export/Dockerfile @@ -17,14 +17,23 @@ RUN bash -c 'if [ ! -z "$(which apk)" ]; then apk --no-cache add \ curl \ bash \ openjdk17 \ - openjdk21 \ ttf-dejavu \ gettext \ jq \ ca-certificates \ java-cacerts && \ + if [ -n "$(apk --no-cache search -q -e openjdk21)" ]; then \ + apk --no-cache add openjdk21; \ + else \ + echo "WARNING: openjdk21 is not available in this Alpine release, skipping it."; \ + fi && \ update-ca-certificates && \ - ln -sfn "/usr/lib/jvm/java-${SPRYKER_JENKINS_OPENJDK_VERSION}-openjdk" /usr/lib/jvm/default-jvm && \ + JVM_HOME="/usr/lib/jvm/java-${SPRYKER_JENKINS_OPENJDK_VERSION}-openjdk"; \ + if [ ! -d "$JVM_HOME" ]; then \ + echo "WARNING: ${JVM_HOME} is not installed, falling back to java-17-openjdk."; \ + JVM_HOME="/usr/lib/jvm/java-17-openjdk"; \ + fi && \ + ln -sfn "$JVM_HOME" /usr/lib/jvm/default-jvm && \ mkdir -p /envs \ ; fi' @@ -39,12 +48,17 @@ RUN bash -c 'if [ ! -z "$(which apt)" ]; then apt update -y && \ curl \ bash \ openjdk-17-jdk \ - temurin-21-jdk \ fonts-dejavu \ gettext \ jq \ && \ - update-alternatives --set java "$(update-alternatives --list java | grep -m1 -- "-${SPRYKER_JENKINS_OPENJDK_VERSION}-")" && \ + (apt install -y temurin-21-jdk || echo "WARNING: temurin-21-jdk is not available, skipping it.") && \ + JAVA_ALTERNATIVE="$(update-alternatives --list java | grep -m1 -- "-${SPRYKER_JENKINS_OPENJDK_VERSION}-")"; \ + if [ -z "$JAVA_ALTERNATIVE" ]; then \ + echo "WARNING: java ${SPRYKER_JENKINS_OPENJDK_VERSION} is not installed, falling back to java 17."; \ + JAVA_ALTERNATIVE="$(update-alternatives --list java | grep -m1 -- "-17-")"; \ + fi && \ + update-alternatives --set java "$JAVA_ALTERNATIVE" && \ mkdir -p /envs \ ; fi' diff --git a/images/common/services/jenkins/export/sso/Dockerfile b/images/common/services/jenkins/export/sso/Dockerfile index 336dfd95b..320df7860 100644 --- a/images/common/services/jenkins/export/sso/Dockerfile +++ b/images/common/services/jenkins/export/sso/Dockerfile @@ -22,15 +22,24 @@ RUN bash -c 'if [ ! -z "$(which apk)" ]; then apk --no-cache add \ curl \ bash \ openjdk17 \ - openjdk21 \ ttf-dejavu \ gettext \ jq \ ca-certificates \ java-cacerts \ aws-cli && \ + if [ -n "$(apk --no-cache search -q -e openjdk21)" ]; then \ + apk --no-cache add openjdk21; \ + else \ + echo "WARNING: openjdk21 is not available in this Alpine release, skipping it."; \ + fi && \ update-ca-certificates && \ - ln -sfn "/usr/lib/jvm/java-${SPRYKER_JENKINS_OPENJDK_VERSION}-openjdk" /usr/lib/jvm/default-jvm && \ + JVM_HOME="/usr/lib/jvm/java-${SPRYKER_JENKINS_OPENJDK_VERSION}-openjdk"; \ + if [ ! -d "$JVM_HOME" ]; then \ + echo "WARNING: ${JVM_HOME} is not installed, falling back to java-17-openjdk."; \ + JVM_HOME="/usr/lib/jvm/java-17-openjdk"; \ + fi && \ + ln -sfn "$JVM_HOME" /usr/lib/jvm/default-jvm && \ mkdir -p /envs \ ; fi' @@ -45,13 +54,18 @@ RUN bash -c 'if [ ! -z "$(which apt)" ]; then apt update -y && \ curl \ bash \ openjdk-17-jdk \ - temurin-21-jdk \ fonts-dejavu \ gettext \ jq \ ca-certificates \ unzip && \ - update-alternatives --set java "$(update-alternatives --list java | grep -m1 -- "-${SPRYKER_JENKINS_OPENJDK_VERSION}-")" && \ + (apt install -y temurin-21-jdk || echo "WARNING: temurin-21-jdk is not available, skipping it.") && \ + JAVA_ALTERNATIVE="$(update-alternatives --list java | grep -m1 -- "-${SPRYKER_JENKINS_OPENJDK_VERSION}-")"; \ + if [ -z "$JAVA_ALTERNATIVE" ]; then \ + echo "WARNING: java ${SPRYKER_JENKINS_OPENJDK_VERSION} is not installed, falling back to java 17."; \ + JAVA_ALTERNATIVE="$(update-alternatives --list java | grep -m1 -- "-17-")"; \ + fi && \ + update-alternatives --set java "$JAVA_ALTERNATIVE" && \ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" && \ unzip awscliv2.zip && \ ./aws/install && \