From 9bc2d9905ee4de6374c34cccdc96500432ebffaf Mon Sep 17 00:00:00 2001 From: Melissa Lee Date: Tue, 11 Aug 2026 16:43:15 -0400 Subject: [PATCH 01/14] Add UBI 10 micro based Dockerfiles --- .../full/Dockerfile.ubi10-micro.ibmjava8 | 48 +++++ .../full/Dockerfile.ubi10-micro.openjdk11 | 48 +++++ .../full/Dockerfile.ubi10-micro.openjdk17 | 48 +++++ .../full/Dockerfile.ubi10-micro.openjdk21 | 48 +++++ .../full/Dockerfile.ubi10-micro.openjdk25 | 48 +++++ .../full/Dockerfile.ubi10-micro.openjdk8 | 48 +++++ .../full/helpers/build/populate_scc.sh | 12 +- .../Dockerfile.ubi10-micro.ibmjava8 | 173 ++++++++++++++++++ .../Dockerfile.ubi10-micro.openjdk11 | 164 +++++++++++++++++ .../Dockerfile.ubi10-micro.openjdk17 | 164 +++++++++++++++++ .../Dockerfile.ubi10-micro.openjdk21 | 164 +++++++++++++++++ .../Dockerfile.ubi10-micro.openjdk25 | 164 +++++++++++++++++ .../Dockerfile.ubi10-micro.openjdk8 | 164 +++++++++++++++++ .../kernel-slim/helpers/build/populate_scc.sh | 12 +- 14 files changed, 1293 insertions(+), 12 deletions(-) create mode 100644 releases/26.0.0.8/full/Dockerfile.ubi10-micro.ibmjava8 create mode 100644 releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk11 create mode 100644 releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk17 create mode 100644 releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk21 create mode 100644 releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk25 create mode 100644 releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk8 create mode 100644 releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.ibmjava8 create mode 100755 releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.openjdk11 create mode 100755 releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.openjdk17 create mode 100755 releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.openjdk21 create mode 100755 releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.openjdk25 create mode 100755 releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.openjdk8 diff --git a/releases/26.0.0.8/full/Dockerfile.ubi10-micro.ibmjava8 b/releases/26.0.0.8/full/Dockerfile.ubi10-micro.ibmjava8 new file mode 100644 index 00000000..5b02ac37 --- /dev/null +++ b/releases/26.0.0.8/full/Dockerfile.ubi10-micro.ibmjava8 @@ -0,0 +1,48 @@ +ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:26.0.0.8-kernel-slim-java8-ibmjava-ubi-micro + +FROM $PARENT_IMAGE AS installBundle + +ARG VERBOSE=false +ARG LIBERTY_VERSION=26.0.0.8 +ARG FEATURES_SHA=534d4f1b2b8cf34903b36f6e3780915f82a35419 + +# If there is a local copy of the repository use that instead +COPY resources/ /tmp/ + +# We need unzip when using a local repo +USER root +RUN microdnf -y install unzip +USER 1001 + +# Install all features +RUN set -eux; \ + if [ ! -f /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip ]; then \ + curl https://repo1.maven.org/maven2/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json > /tmp/features-$LIBERTY_VERSION.json; \ + echo "$FEATURES_SHA /tmp/features-$LIBERTY_VERSION.json" > /tmp/features-$LIBERTY_VERSION.json.sha1; \ + sha1sum -c /tmp/features-$LIBERTY_VERSION.json.sha1; \ + else \ + echo "$FEATURES_SHA /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip" > /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \ + sha1sum -c /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \ + mkdir /tmp/feature-repo-$LIBERTY_VERSION; \ + unzip -d /tmp/feature-repo-$LIBERTY_VERSION /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip; \ + cp /tmp/feature-repo-$LIBERTY_VERSION/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json /tmp; \ + export FEATURE_LOCAL_REPO=/tmp/feature-repo-$LIBERTY_VERSION; \ + export FEATURE_VERIFY=skip; \ + fi; \ + grep \"shortName\" /tmp/features-$LIBERTY_VERSION.json | sed -e 's/.* //' -e 's/,//' | xargs featureUtility installFeature --acceptLicense --noCache; \ + rm -rf /output/workarea /output/logs; \ + find /opt/ol/wlp ! -perm -g=rw -print0 | xargs -r -0 chmod g+rw; + +ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:26.0.0.8-kernel-slim-java8-ibmjava-ubi-micro +FROM $PARENT_IMAGE +ARG VERBOSE=false + +# Copy the runtime +COPY --from=installBundle --chown=1001:0 /opt/ol/wlp /opt/ol/wlp + +COPY --chown=1001:0 server.xml /config/ + +# Create a new SCC layer +RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \ + && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache \ + && find /opt/ol/wlp/output ! -perm -g=rwx -print0 | xargs -0 -r chmod g+rwx diff --git a/releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk11 b/releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk11 new file mode 100644 index 00000000..5211ef5a --- /dev/null +++ b/releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk11 @@ -0,0 +1,48 @@ +ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:26.0.0.8-kernel-slim-java11-openj9-ubi-micro + +FROM $PARENT_IMAGE AS installBundle + +ARG VERBOSE=false +ARG LIBERTY_VERSION=26.0.0.8 +ARG FEATURES_SHA=534d4f1b2b8cf34903b36f6e3780915f82a35419 + +# If there is a local copy of the repository use that instead +COPY resources/ /tmp/ + +# We need unzip when using a local repo +USER root +RUN microdnf -y install unzip +USER 1001 + +# Install all features +RUN set -eux; \ + if [ ! -f /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip ]; then \ + curl https://repo1.maven.org/maven2/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json > /tmp/features-$LIBERTY_VERSION.json; \ + echo "$FEATURES_SHA /tmp/features-$LIBERTY_VERSION.json" > /tmp/features-$LIBERTY_VERSION.json.sha1; \ + sha1sum -c /tmp/features-$LIBERTY_VERSION.json.sha1; \ + else \ + echo "$FEATURES_SHA /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip" > /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \ + sha1sum -c /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \ + mkdir /tmp/feature-repo-$LIBERTY_VERSION; \ + unzip -d /tmp/feature-repo-$LIBERTY_VERSION /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip; \ + cp /tmp/feature-repo-$LIBERTY_VERSION/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json /tmp; \ + export FEATURE_LOCAL_REPO=/tmp/feature-repo-$LIBERTY_VERSION; \ + export FEATURE_VERIFY=skip; \ + fi; \ + grep \"shortName\" /tmp/features-$LIBERTY_VERSION.json | sed -e 's/.* //' -e 's/,//' | xargs featureUtility installFeature --acceptLicense --noCache; \ + rm -rf /output/workarea /output/logs; \ + find /opt/ol/wlp ! -perm -g=rw -print0 | xargs -r -0 chmod g+rw; + +ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:26.0.0.8-kernel-slim-java11-openj9-ubi-micro +FROM $PARENT_IMAGE +ARG VERBOSE=false + +# Copy the runtime +COPY --from=installBundle --chown=1001:0 /opt/ol/wlp /opt/ol/wlp + +COPY --chown=1001:0 server.xml /config/ + +# Create a new SCC layer +RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \ + && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache \ + && find /opt/ol/wlp/output ! -perm -g=rwx -print0 | xargs -0 -r chmod g+rwx diff --git a/releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk17 b/releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk17 new file mode 100644 index 00000000..ea00e5a3 --- /dev/null +++ b/releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk17 @@ -0,0 +1,48 @@ +ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:26.0.0.8-kernel-slim-java17-openj9-ubi-micro + +FROM $PARENT_IMAGE AS installBundle + +ARG VERBOSE=false +ARG LIBERTY_VERSION=26.0.0.8 +ARG FEATURES_SHA=534d4f1b2b8cf34903b36f6e3780915f82a35419 + +# If there is a local copy of the repository use that instead +COPY resources/ /tmp/ + +# We need unzip when using a local repo +USER root +RUN microdnf -y install unzip +USER 1001 + +# Install all features +RUN set -eux; \ + if [ ! -f /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip ]; then \ + curl https://repo1.maven.org/maven2/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json > /tmp/features-$LIBERTY_VERSION.json; \ + echo "$FEATURES_SHA /tmp/features-$LIBERTY_VERSION.json" > /tmp/features-$LIBERTY_VERSION.json.sha1; \ + sha1sum -c /tmp/features-$LIBERTY_VERSION.json.sha1; \ + else \ + echo "$FEATURES_SHA /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip" > /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \ + sha1sum -c /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \ + mkdir /tmp/feature-repo-$LIBERTY_VERSION; \ + unzip -d /tmp/feature-repo-$LIBERTY_VERSION /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip; \ + cp /tmp/feature-repo-$LIBERTY_VERSION/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json /tmp; \ + export FEATURE_LOCAL_REPO=/tmp/feature-repo-$LIBERTY_VERSION; \ + export FEATURE_VERIFY=skip; \ + fi; \ + grep \"shortName\" /tmp/features-$LIBERTY_VERSION.json | sed -e 's/.* //' -e 's/,//' | xargs featureUtility installFeature --acceptLicense --noCache; \ + rm -rf /output/workarea /output/logs; \ + find /opt/ol/wlp ! -perm -g=rw -print0 | xargs -r -0 chmod g+rw; + +ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:26.0.0.8-kernel-slim-java17-openj9-ubi-micro +FROM $PARENT_IMAGE +ARG VERBOSE=false + +# Copy the runtime +COPY --from=installBundle --chown=1001:0 /opt/ol/wlp /opt/ol/wlp + +COPY --chown=1001:0 server.xml /config/ + +# Create a new SCC layer +RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \ + && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache \ + && find /opt/ol/wlp/output ! -perm -g=rwx -print0 | xargs -0 -r chmod g+rwx diff --git a/releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk21 b/releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk21 new file mode 100644 index 00000000..79ebab9a --- /dev/null +++ b/releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk21 @@ -0,0 +1,48 @@ +ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:26.0.0.8-kernel-slim-java21-openj9-ubi-micro + +FROM $PARENT_IMAGE AS installBundle + +ARG VERBOSE=false +ARG LIBERTY_VERSION=26.0.0.8 +ARG FEATURES_SHA=534d4f1b2b8cf34903b36f6e3780915f82a35419 + +# If there is a local copy of the repository use that instead +COPY resources/ /tmp/ + +# We need unzip when using a local repo +USER root +RUN microdnf -y install unzip +USER 1001 + +# Install all features +RUN set -eux; \ + if [ ! -f /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip ]; then \ + curl https://repo1.maven.org/maven2/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json > /tmp/features-$LIBERTY_VERSION.json; \ + echo "$FEATURES_SHA /tmp/features-$LIBERTY_VERSION.json" > /tmp/features-$LIBERTY_VERSION.json.sha1; \ + sha1sum -c /tmp/features-$LIBERTY_VERSION.json.sha1; \ + else \ + echo "$FEATURES_SHA /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip" > /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \ + sha1sum -c /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \ + mkdir /tmp/feature-repo-$LIBERTY_VERSION; \ + unzip -d /tmp/feature-repo-$LIBERTY_VERSION /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip; \ + cp /tmp/feature-repo-$LIBERTY_VERSION/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json /tmp; \ + export FEATURE_LOCAL_REPO=/tmp/feature-repo-$LIBERTY_VERSION; \ + export FEATURE_VERIFY=skip; \ + fi; \ + grep \"shortName\" /tmp/features-$LIBERTY_VERSION.json | sed -e 's/.* //' -e 's/,//' | xargs featureUtility installFeature --acceptLicense --noCache; \ + rm -rf /output/workarea /output/logs; \ + find /opt/ol/wlp ! -perm -g=rw -print0 | xargs -r -0 chmod g+rw; + +ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:26.0.0.8-kernel-slim-java21-openj9-ubi-micro +FROM $PARENT_IMAGE +ARG VERBOSE=false + +# Copy the runtime +COPY --from=installBundle --chown=1001:0 /opt/ol/wlp /opt/ol/wlp + +COPY --chown=1001:0 server.xml /config/ + +# Create a new SCC layer +RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \ + && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache \ + && find /opt/ol/wlp/output ! -perm -g=rwx -print0 | xargs -0 -r chmod g+rwx diff --git a/releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk25 b/releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk25 new file mode 100644 index 00000000..eb4a6a34 --- /dev/null +++ b/releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk25 @@ -0,0 +1,48 @@ +ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:26.0.0.8-kernel-slim-java25-openj9-ubi-micro + +FROM $PARENT_IMAGE AS installBundle + +ARG VERBOSE=false +ARG LIBERTY_VERSION=26.0.0.8 +ARG FEATURES_SHA=534d4f1b2b8cf34903b36f6e3780915f82a35419 + +# If there is a local copy of the repository use that instead +COPY resources/ /tmp/ + +# We need unzip when using a local repo +USER root +RUN microdnf -y install unzip +USER 1001 + +# Install all features +RUN set -eux; \ + if [ ! -f /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip ]; then \ + curl https://repo1.maven.org/maven2/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json > /tmp/features-$LIBERTY_VERSION.json; \ + echo "$FEATURES_SHA /tmp/features-$LIBERTY_VERSION.json" > /tmp/features-$LIBERTY_VERSION.json.sha1; \ + sha1sum -c /tmp/features-$LIBERTY_VERSION.json.sha1; \ + else \ + echo "$FEATURES_SHA /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip" > /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \ + sha1sum -c /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \ + mkdir /tmp/feature-repo-$LIBERTY_VERSION; \ + unzip -d /tmp/feature-repo-$LIBERTY_VERSION /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip; \ + cp /tmp/feature-repo-$LIBERTY_VERSION/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json /tmp; \ + export FEATURE_LOCAL_REPO=/tmp/feature-repo-$LIBERTY_VERSION; \ + export FEATURE_VERIFY=skip; \ + fi; \ + grep \"shortName\" /tmp/features-$LIBERTY_VERSION.json | sed -e 's/.* //' -e 's/,//' | xargs featureUtility installFeature --acceptLicense --noCache; \ + rm -rf /output/workarea /output/logs; \ + find /opt/ol/wlp ! -perm -g=rw -print0 | xargs -r -0 chmod g+rw; + +ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:26.0.0.8-kernel-slim-java25-openj9-ubi-micro +FROM $PARENT_IMAGE +ARG VERBOSE=false + +# Copy the runtime +COPY --from=installBundle --chown=1001:0 /opt/ol/wlp /opt/ol/wlp + +COPY --chown=1001:0 server.xml /config/ + +# Create a new SCC layer +RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \ + && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache \ + && find /opt/ol/wlp/output ! -perm -g=rwx -print0 | xargs -0 -r chmod g+rwx diff --git a/releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk8 b/releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk8 new file mode 100644 index 00000000..dee88865 --- /dev/null +++ b/releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk8 @@ -0,0 +1,48 @@ +ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:26.0.0.8-kernel-slim-java8-openj9-ubi-micro + +FROM $PARENT_IMAGE AS installBundle + +ARG VERBOSE=false +ARG LIBERTY_VERSION=26.0.0.8 +ARG FEATURES_SHA=534d4f1b2b8cf34903b36f6e3780915f82a35419 + +# If there is a local copy of the repository use that instead +COPY resources/ /tmp/ + +# We need unzip when using a local repo +USER root +RUN microdnf -y install unzip +USER 1001 + +# Install all features +RUN set -eux; \ + if [ ! -f /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip ]; then \ + curl https://repo1.maven.org/maven2/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json > /tmp/features-$LIBERTY_VERSION.json; \ + echo "$FEATURES_SHA /tmp/features-$LIBERTY_VERSION.json" > /tmp/features-$LIBERTY_VERSION.json.sha1; \ + sha1sum -c /tmp/features-$LIBERTY_VERSION.json.sha1; \ + else \ + echo "$FEATURES_SHA /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip" > /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \ + sha1sum -c /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \ + mkdir /tmp/feature-repo-$LIBERTY_VERSION; \ + unzip -d /tmp/feature-repo-$LIBERTY_VERSION /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip; \ + cp /tmp/feature-repo-$LIBERTY_VERSION/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json /tmp; \ + export FEATURE_LOCAL_REPO=/tmp/feature-repo-$LIBERTY_VERSION; \ + export FEATURE_VERIFY=skip; \ + fi; \ + grep \"shortName\" /tmp/features-$LIBERTY_VERSION.json | sed -e 's/.* //' -e 's/,//' | xargs featureUtility installFeature --acceptLicense --noCache; \ + rm -rf /output/workarea /output/logs; \ + find /opt/ol/wlp ! -perm -g=rw -print0 | xargs -r -0 chmod g+rw; + +ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:26.0.0.8-kernel-slim-java8-openj9-ubi-micro +FROM $PARENT_IMAGE +ARG VERBOSE=false + +# Copy the runtime +COPY --from=installBundle --chown=1001:0 /opt/ol/wlp /opt/ol/wlp + +COPY --chown=1001:0 server.xml /config/ + +# Create a new SCC layer +RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \ + && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache \ + && find /opt/ol/wlp/output ! -perm -g=rwx -print0 | xargs -0 -r chmod g+rwx diff --git a/releases/26.0.0.8/full/helpers/build/populate_scc.sh b/releases/26.0.0.8/full/helpers/build/populate_scc.sh index 1012a07a..1c4cae57 100755 --- a/releases/26.0.0.8/full/helpers/build/populate_scc.sh +++ b/releases/26.0.0.8/full/helpers/build/populate_scc.sh @@ -81,10 +81,10 @@ do -s Size of the SCC in megabytes (m suffix required). (Default: $SCC_SIZE) -t Trim the SCC to eliminate most of the free space, if any. -d Don't trim the SCC. - -w Use curl to warm an endpoint during SCC creation. (Default: $WARM_ENDPOINT) + -w Use wget to warm an endpoint during SCC creation. (Default: $WARM_ENDPOINT) -c Do not warm an endpoint during SCC creation. -u The URL endpoint to warm during SCC creation. (Default: $WARM_ENDPOINT_URL) - -m Use curl to warm the openapi endpoint during SCC creation. (Default: $WARM_OPENAPI_ENDPOINT) + -m Use wget to warm the openapi endpoint during SCC creation. (Default: $WARM_OPENAPI_ENDPOINT) -l Do not warm the openapi endpoint during SCC creation. -o The Open API URL endpoint to warm during SCC creation. (Default: $WARM_ENDPOINT_OPENAPI_URL) @@ -117,11 +117,11 @@ then if [ ${WARM_ENDPOINT} == true ] then - curl --silent --output /dev/null --show-error --fail --max-time 5 ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing" + wget -q -O /dev/null -T 5 ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing" fi if [ ${WARM_OPENAPI_ENDPOINT} == true ] then - curl --silent --output /dev/null --show-error --fail --max-time 5 ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing" + wget -q -O /dev/null -T 5 ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing" fi /opt/ol/wlp/bin/server stop @@ -152,11 +152,11 @@ do if [ ${WARM_ENDPOINT} == true ] then - curl --silent --output /dev/null --show-error --fail --max-time 5 ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing" + wget -q -O /dev/null -T 5 ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing" fi if [ ${WARM_OPENAPI_ENDPOINT} == true ] then - curl --silent --output /dev/null --show-error --fail --max-time 5 ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing" + wget -q -O /dev/null -T 5 ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing" fi /opt/ol/wlp/bin/server stop diff --git a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.ibmjava8 b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.ibmjava8 new file mode 100644 index 00000000..224137e0 --- /dev/null +++ b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.ibmjava8 @@ -0,0 +1,173 @@ +# This relies on a base image which needs to be built seperately +# curl https://raw.githubusercontent.com/ibmruntimes/ci.docker/main/ibmjava/8/jre/ubi-min/Dockerfile -o java/Dockerfile.ubi10.minimal +# The above file needs editing before it is built: +# This changes to a UBI10 base, and corrects the microdnf command to work on UBI10. +# $> sed -i -e 's/ubi8/ubi10/' -e 's/microdnf install/microdnf -y install/' -e 's/microdnf update/microdnf update -y/' Dockerfile.ubi10-minimal.ibmjava8 +# $> rm ./java/Dockerfile.ubi10.minimal.bak +# Then build and tag as 'ibmjava:10-ubi' +# $> docker build -t ibmjava:10-ubi -f ./java/Dockerfile.ubi10.minimal java + +FROM ibmjava:10-ubi AS builder + +USER root + +ARG LIBERTY_VERSION=26.0.0.8 +ARG LIBERTY_SHA=6394fee2c842008e9e36f3474c23330bfe467f48 +ARG LIBERTY_DOWNLOAD_URL=https://repo1.maven.org/maven2/io/openliberty/openliberty-kernel/$LIBERTY_VERSION/openliberty-kernel-$LIBERTY_VERSION.zip + +ARG VERBOSE=false + +# If there is a local copy of the image use that instead +COPY resources/ /tmp/ + +# Install Open Liberty +RUN microdnf -y install shadow-utils wget unzip openssl \ + && if [ ! -f /tmp/wlp.zip ]; then wget -q $LIBERTY_DOWNLOAD_URL -U UA-Open-Liberty-Docker -O /tmp/wlp.zip; fi \ + && echo "$LIBERTY_SHA /tmp/wlp.zip" > /tmp/wlp.zip.sha1 \ + && sha1sum -c /tmp/wlp.zip.sha1 \ + && chmod -R u+x /usr/bin \ + && unzip -q /tmp/wlp.zip -d /opt/ol \ + && mkdir -p /licenses \ + && cp /opt/ol/wlp/LICENSE /licenses/ \ +# && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ + && chown -R 1001:0 /opt/ol/wlp \ + && chmod -R g+rw /opt/ol/wlp + +# Install dumb-init +RUN set -eux; \ + ARCH="$(uname -m)"; \ + case "${ARCH}" in \ + aarch64|arm64) \ + DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_aarch64'; \ + DUMB_INIT_SHA256=b7d648f97154a99c539b63c55979cd29f005f88430fb383007fe3458340b795e; \ + ;; \ + amd64|x86_64) \ + DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_x86_64'; \ + DUMB_INIT_SHA256=e874b55f3279ca41415d290c512a7ba9d08f98041b28ae7c2acb19a545f1c4df; \ + ;; \ + ppc64el|ppc64le) \ + DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_ppc64le'; \ + DUMB_INIT_SHA256=3d15e80e29f0f4fa1fc686b00613a2220bc37e83a35283d4b4cca1fbd0a5609f; \ + ;; \ + s390x) \ + DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_s390x'; \ + DUMB_INIT_SHA256=47e4601b152fc6dcb1891e66c30ecc62a2939fd7ffd1515a7c30f281cfec53b7; \ + ;;\ + *) \ + echo "Unsupported arch: ${ARCH}"; \ + exit 1; \ + ;; \ + esac; \ + curl -LfsSo /usr/bin/dumb-init ${DUMB_INIT_URL}; \ + echo "${DUMB_INIT_SHA256} */usr/bin/dumb-init" | sha256sum -c -; \ + chmod +x /usr/bin/dumb-init; + +FROM ibmjava:10-ubi-micro + +USER root + +ARG LIBERTY_VERSION=26.0.0.8 +ARG LIBERTY_BUILD_LABEL=cl260820260725-1102 + +ARG OPENJ9_SCC=true +ARG VERBOSE=false + +LABEL org.opencontainers.image.authors="Leo Christy Jesuraj, Iain Lewis, Melissa Lee, Kirby Chin" \ + org.opencontainers.image.vendor="Open Liberty" \ + org.opencontainers.image.url="https://openliberty.io/" \ + org.opencontainers.image.source="https://github.com/OpenLiberty/ci.docker" \ + org.opencontainers.image.version="$LIBERTY_VERSION" \ + org.opencontainers.image.revision="$LIBERTY_BUILD_LABEL" \ + liberty.version="$LIBERTY_VERSION" \ + io.openliberty.version="$LIBERTY_VERSION" \ + vendor="Open Liberty" \ + name="Open Liberty" \ + version="$LIBERTY_VERSION" \ + summary="Image for Open Liberty with IBM's Java and UBI 10 minimal" \ + description="This image contains the Open Liberty runtime with IBM's Java and Red Hat UBI 10 minimal as the base OS. For more information on this image please see https://github.com/OpenLiberty/ci.docker#building-an-application-image" + +COPY NOTICES /opt/ol/NOTICES +COPY helpers /opt/ol/helpers +COPY fixes/ /opt/ol/fixes/ + +# Add default user 1001 and create wlp with right user/permissions before copying +RUN echo "1001:x:1001:0::/home/1001:/sbin/nologin" >> /etc/passwd \ + && mkdir -p /home/1001 \ + && chown 1001:0 /home/1001 \ + && mkdir -p /opt/ol/wlp \ + && chown -R 1001:0 /opt/ol/wlp \ + && chmod -R g+rw /opt/ol/wlp + +COPY --from=builder /usr/bin/dumb-init /usr/bin/dumb-init +COPY --from=builder /usr/bin/awk /usr/bin/awk +COPY --from=builder /usr/bin/wget /usr/bin/wget + +COPY --from=builder /usr/lib64/libpsl.so* /usr/lib64/ +COPY --from=builder /usr/lib64/libmpfr.so* /usr/lib64/ +COPY --from=builder /usr/lib64/libreadline.so* /usr/lib64/ + +# Copy the runtime and licenses +COPY --from=builder --chown=1001:0 /opt/ol/wlp /opt/ol/wlp +COPY --from=builder /licenses /licenses + +# Set Path Shortcuts +ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \ + LOG_DIR=/liberty/logs \ + WLP_OUTPUT_DIR=/opt/ol/wlp/output \ + WLP_SKIP_MAXPERMSIZE=true \ + OPENJ9_SCC=$OPENJ9_SCC + +# Configure Open Liberty +RUN /opt/ol/wlp/bin/server create \ + && rm -rf $WLP_OUTPUT_DIR/.classCache /output/workarea \ + && rm -rf /opt/ol/wlp/usr/servers/defaultServer/server.env + +# Create symlinks && set permissions for non-root user +RUN mkdir /logs \ + && chown -R 1001:0 /logs \ + && chmod -R g+rw /logs \ + && mkdir -p /opt/ol/wlp/usr/shared/resources/lib.index.cache \ + && ln -s /opt/ol/wlp/usr/shared/resources/lib.index.cache /lib.index.cache \ + && mkdir -p $WLP_OUTPUT_DIR/defaultServer \ + && ln -s $WLP_OUTPUT_DIR/defaultServer /output \ + && ln -s /opt/ol/wlp/usr/servers/defaultServer /config \ + && mkdir -p /config/configDropins/defaults \ + && mkdir -p /config/configDropins/overrides \ + && ln -s /opt/ol/wlp /liberty \ + && ln -s /opt/ol/fixes /fixes \ + && echo "" > /config/configDropins/defaults/open-default-port.xml \ + && chown -R 1001:0 /config \ + && chmod -R g+rw /config \ + && chown -R 1001:0 /opt/ol/wlp/usr \ + && chmod -R g+rw /opt/ol/wlp/usr \ + && chown -R 1001:0 /opt/ol/wlp/output \ + && chmod -R g+rw /opt/ol/wlp/output \ + && chown -R 1001:0 /opt/ol/helpers \ + && chmod -R ug+rwx /opt/ol/helpers \ + && chown -R 1001:0 /opt/ol/fixes \ + && chmod -R g+rwx /opt/ol/fixes \ + && mkdir /etc/wlp \ + && chown -R 1001:0 /etc/wlp \ + && chmod -R g+rw /etc/wlp \ + && ln -s /logs /liberty/logs \ + && mkdir /serviceability \ + && chown -R 1001:0 /serviceability \ + && chmod -R g+rw /serviceability + +# Create a new SCC layer +RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \ + && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache /output/workarea \ + && chown -R 1001:0 /opt/ol/wlp/output \ + && chmod -R g+rwx /opt/ol/wlp/output + +#These settings are needed so that we can run as a different user than 1001 after server warmup +ENV RANDFILE=/tmp/.rnd \ + IBM_JAVA_OPTIONS="-Xshareclasses:name=liberty,readonly,nonfatal,cacheDir=/output/.classCache/ -Dosgi.checkConfiguration=false ${IBM_JAVA_OPTIONS}" + +USER 1001 + +EXPOSE 9080 9443 + +ENTRYPOINT ["/opt/ol/helpers/runtime/docker-server.sh"] +CMD ["/opt/ol/wlp/bin/server", "run", "defaultServer"] + diff --git a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.openjdk11 b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.openjdk11 new file mode 100755 index 00000000..671663ac --- /dev/null +++ b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.openjdk11 @@ -0,0 +1,164 @@ +FROM registry.access.redhat.com/ubi10/ubi-minimal:latest AS builder + +USER root + +ARG LIBERTY_VERSION=26.0.0.8 +ARG LIBERTY_SHA=6394fee2c842008e9e36f3474c23330bfe467f48 +ARG LIBERTY_DOWNLOAD_URL=https://repo1.maven.org/maven2/io/openliberty/openliberty-kernel/$LIBERTY_VERSION/openliberty-kernel-$LIBERTY_VERSION.zip + +ARG VERBOSE=false + +# If there is a local copy of the image use that instead +COPY resources/ /tmp/ + +# Install Open Liberty +RUN microdnf -y install shadow-utils wget unzip openssl \ + && if [ ! -f /tmp/wlp.zip ]; then wget -q $LIBERTY_DOWNLOAD_URL -U UA-Open-Liberty-Docker -O /tmp/wlp.zip; fi \ + && echo "$LIBERTY_SHA /tmp/wlp.zip" > /tmp/wlp.zip.sha1 \ + && sha1sum -c /tmp/wlp.zip.sha1 \ + && chmod -R u+x /usr/bin \ + && unzip -q /tmp/wlp.zip -d /opt/ol \ + && mkdir -p /licenses \ + && cp /opt/ol/wlp/LICENSE /licenses/ \ + && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ + && chown -R 1001:0 /opt/ol/wlp \ + && chmod -R g+rw /opt/ol/wlp + +# Install dumb-init +RUN set -eux; \ + ARCH="$(uname -m)"; \ + case "${ARCH}" in \ + aarch64|arm64) \ + DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_aarch64'; \ + DUMB_INIT_SHA256=b7d648f97154a99c539b63c55979cd29f005f88430fb383007fe3458340b795e; \ + ;; \ + amd64|x86_64) \ + DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_x86_64'; \ + DUMB_INIT_SHA256=e874b55f3279ca41415d290c512a7ba9d08f98041b28ae7c2acb19a545f1c4df; \ + ;; \ + ppc64el|ppc64le) \ + DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_ppc64le'; \ + DUMB_INIT_SHA256=3d15e80e29f0f4fa1fc686b00613a2220bc37e83a35283d4b4cca1fbd0a5609f; \ + ;; \ + s390x) \ + DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_s390x'; \ + DUMB_INIT_SHA256=47e4601b152fc6dcb1891e66c30ecc62a2939fd7ffd1515a7c30f281cfec53b7; \ + ;;\ + *) \ + echo "Unsupported arch: ${ARCH}"; \ + exit 1; \ + ;; \ + esac; \ + curl -LfsSo /usr/bin/dumb-init ${DUMB_INIT_URL}; \ + echo "${DUMB_INIT_SHA256} */usr/bin/dumb-init" | sha256sum -c -; \ + chmod +x /usr/bin/dumb-init; + +FROM icr.io/appcafe/ibm-semeru-runtimes:open-11-jre-ubi10-micro + +USER root + +ARG LIBERTY_VERSION=26.0.0.8 +ARG LIBERTY_BUILD_LABEL=cl260820260725-1102 + +ARG OPENJ9_SCC=true +ARG VERBOSE=false + +LABEL org.opencontainers.image.authors="Leo Christy Jesuraj, Iain Lewis, Melissa Lee, Kirby Chin" \ + org.opencontainers.image.vendor="Open Liberty" \ + org.opencontainers.image.url="https://openliberty.io/" \ + org.opencontainers.image.source="https://github.com/OpenLiberty/ci.docker" \ + org.opencontainers.image.version="$LIBERTY_VERSION" \ + org.opencontainers.image.revision="$LIBERTY_BUILD_LABEL" \ + liberty.version="$LIBERTY_VERSION" \ + io.openliberty.version="$LIBERTY_VERSION" \ + vendor="Open Liberty" \ + name="Open Liberty" \ + version="$LIBERTY_VERSION" \ + summary="Image for Open Liberty with IBM Semeru Runtime Open Edition OpenJDK 11 with OpenJ9 and UBI 10 micro" \ + description="This image contains the Open Liberty runtime with IBM Semeru Runtime Open Edition OpenJDK 11 with OpenJ9 and Red Hat UBI 10 micro as the base OS. For more information on this image please see https://github.com/OpenLiberty/ci.docker#building-an-application-image" + +COPY NOTICES /opt/ol/NOTICES +COPY helpers /opt/ol/helpers +COPY fixes/ /opt/ol/fixes/ + +# Add default user 1001 and create wlp with right user/permissions before copying +RUN echo "1001:x:1001:0::/home/1001:/sbin/nologin" >> /etc/passwd \ + && mkdir -p /home/1001 \ + && chown 1001:0 /home/1001 \ + && mkdir -p /opt/ol/wlp \ + && chown -R 1001:0 /opt/ol/wlp \ + && chmod -R g+rw /opt/ol/wlp + +COPY --from=builder /usr/bin/dumb-init /usr/bin/dumb-init +COPY --from=builder /usr/bin/awk /usr/bin/awk +COPY --from=builder /usr/bin/wget /usr/bin/wget + +COPY --from=builder /usr/lib64/libpsl.so* /usr/lib64/ +COPY --from=builder /usr/lib64/libmpfr.so* /usr/lib64/ + +# Copy the runtime and licenses +COPY --from=builder --chown=1001:0 /opt/ol/wlp /opt/ol/wlp +COPY --from=builder /licenses /licenses + +# Set Path Shortcuts +ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \ + LOG_DIR=/liberty/logs \ + WLP_OUTPUT_DIR=/opt/ol/wlp/output \ + WLP_SKIP_MAXPERMSIZE=true \ + OPENJ9_SCC=$OPENJ9_SCC + +# Configure Open Liberty +RUN /opt/ol/wlp/bin/server create \ + && rm -rf $WLP_OUTPUT_DIR/.classCache /output/workarea \ + && rm -rf /opt/ol/wlp/usr/servers/defaultServer/server.env + +# Create symlinks && set permissions for non-root user +RUN mkdir /logs \ + && chown -R 1001:0 /logs \ + && chmod -R g+rw /logs \ + && mkdir -p /opt/ol/wlp/usr/shared/resources/lib.index.cache \ + && ln -s /opt/ol/wlp/usr/shared/resources/lib.index.cache /lib.index.cache \ + && mkdir -p $WLP_OUTPUT_DIR/defaultServer \ + && ln -s $WLP_OUTPUT_DIR/defaultServer /output \ + && ln -s /opt/ol/wlp/usr/servers/defaultServer /config \ + && mkdir -p /config/configDropins/defaults \ + && mkdir -p /config/configDropins/overrides \ + && ln -s /opt/ol/wlp /liberty \ + && ln -s /opt/ol/fixes /fixes \ + && echo "" > /config/configDropins/defaults/open-default-port.xml \ + && chown -R 1001:0 /config \ + && chmod -R g+rw /config \ + && chown -R 1001:0 /opt/ol/wlp/usr \ + && chmod -R g+rw /opt/ol/wlp/usr \ + && chown -R 1001:0 /opt/ol/wlp/output \ + && chmod -R g+rw /opt/ol/wlp/output \ + && chown -R 1001:0 /opt/ol/helpers \ + && chmod -R ug+rwx /opt/ol/helpers \ + && chown -R 1001:0 /opt/ol/fixes \ + && chmod -R g+rwx /opt/ol/fixes \ + && mkdir /etc/wlp \ + && chown -R 1001:0 /etc/wlp \ + && chmod -R g+rw /etc/wlp \ + && if [ -e /etc/instanton.ld.so.cache ]; then chmod g+w /etc/ld.so.cache; fi \ + && ln -s /logs /liberty/logs \ + && mkdir /serviceability \ + && chown -R 1001:0 /serviceability \ + && chmod -R g+rw /serviceability + +# Create a new SCC layer +RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \ + && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache /output/workarea \ + && chown -R 1001:0 /opt/ol/wlp/output \ + && chmod -R g+rwx /opt/ol/wlp/output + +#These settings are needed so that we can run as a different user than 1001 after server warmup +ENV RANDFILE=/tmp/.rnd \ + OPENJ9_JAVA_OPTIONS="-XX:+IgnoreUnrecognizedVMOptions -XX:+IdleTuningGcOnIdle -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,readonly,nonFatal -Dosgi.checkConfiguration=false" + +USER 1001 + +EXPOSE 9080 9443 + +ENTRYPOINT ["/opt/ol/helpers/runtime/docker-server.sh"] +CMD ["/opt/ol/wlp/bin/server", "run", "defaultServer"] + diff --git a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.openjdk17 b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.openjdk17 new file mode 100755 index 00000000..c15410ac --- /dev/null +++ b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.openjdk17 @@ -0,0 +1,164 @@ +FROM registry.access.redhat.com/ubi10/ubi-minimal:latest AS builder + +USER root + +ARG LIBERTY_VERSION=26.0.0.8 +ARG LIBERTY_SHA=6394fee2c842008e9e36f3474c23330bfe467f48 +ARG LIBERTY_DOWNLOAD_URL=https://repo1.maven.org/maven2/io/openliberty/openliberty-kernel/$LIBERTY_VERSION/openliberty-kernel-$LIBERTY_VERSION.zip + +ARG VERBOSE=false + +# If there is a local copy of the image use that instead +COPY resources/ /tmp/ + +# Install Open Liberty +RUN microdnf -y install shadow-utils wget unzip openssl \ + && if [ ! -f /tmp/wlp.zip ]; then wget -q $LIBERTY_DOWNLOAD_URL -U UA-Open-Liberty-Docker -O /tmp/wlp.zip; fi \ + && echo "$LIBERTY_SHA /tmp/wlp.zip" > /tmp/wlp.zip.sha1 \ + && sha1sum -c /tmp/wlp.zip.sha1 \ + && chmod -R u+x /usr/bin \ + && unzip -q /tmp/wlp.zip -d /opt/ol \ + && mkdir -p /licenses \ + && cp /opt/ol/wlp/LICENSE /licenses/ \ + && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ + && chown -R 1001:0 /opt/ol/wlp \ + && chmod -R g+rw /opt/ol/wlp + +# Install dumb-init +RUN set -eux; \ + ARCH="$(uname -m)"; \ + case "${ARCH}" in \ + aarch64|arm64) \ + DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_aarch64'; \ + DUMB_INIT_SHA256=b7d648f97154a99c539b63c55979cd29f005f88430fb383007fe3458340b795e; \ + ;; \ + amd64|x86_64) \ + DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_x86_64'; \ + DUMB_INIT_SHA256=e874b55f3279ca41415d290c512a7ba9d08f98041b28ae7c2acb19a545f1c4df; \ + ;; \ + ppc64el|ppc64le) \ + DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_ppc64le'; \ + DUMB_INIT_SHA256=3d15e80e29f0f4fa1fc686b00613a2220bc37e83a35283d4b4cca1fbd0a5609f; \ + ;; \ + s390x) \ + DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_s390x'; \ + DUMB_INIT_SHA256=47e4601b152fc6dcb1891e66c30ecc62a2939fd7ffd1515a7c30f281cfec53b7; \ + ;;\ + *) \ + echo "Unsupported arch: ${ARCH}"; \ + exit 1; \ + ;; \ + esac; \ + curl -LfsSo /usr/bin/dumb-init ${DUMB_INIT_URL}; \ + echo "${DUMB_INIT_SHA256} */usr/bin/dumb-init" | sha256sum -c -; \ + chmod +x /usr/bin/dumb-init; + +FROM icr.io/appcafe/ibm-semeru-runtimes:open-17-jre-ubi10-micro + +USER root + +ARG LIBERTY_VERSION=26.0.0.8 +ARG LIBERTY_BUILD_LABEL=cl260820260725-1102 + +ARG OPENJ9_SCC=true +ARG VERBOSE=false + +LABEL org.opencontainers.image.authors="Leo Christy Jesuraj, Iain Lewis, Melissa Lee, Kirby Chin" \ + org.opencontainers.image.vendor="Open Liberty" \ + org.opencontainers.image.url="https://openliberty.io/" \ + org.opencontainers.image.source="https://github.com/OpenLiberty/ci.docker" \ + org.opencontainers.image.version="$LIBERTY_VERSION" \ + org.opencontainers.image.revision="$LIBERTY_BUILD_LABEL" \ + liberty.version="$LIBERTY_VERSION" \ + io.openliberty.version="$LIBERTY_VERSION" \ + vendor="Open Liberty" \ + name="Open Liberty" \ + version="$LIBERTY_VERSION" \ + summary="Image for Open Liberty with IBM Semeru Runtime Open Edition OpenJDK 17 with OpenJ9 and UBI 10 micro" \ + description="This image contains the Open Liberty runtime with IBM Semeru Runtime Open Edition OpenJDK 17 with OpenJ9 and Red Hat UBI 10 micro as the base OS. For more information on this image please see https://github.com/OpenLiberty/ci.docker#building-an-application-image" + +COPY NOTICES /opt/ol/NOTICES +COPY helpers /opt/ol/helpers +COPY fixes/ /opt/ol/fixes/ + +# Add default user 1001 and create wlp with right user/permissions before copying +RUN echo "1001:x:1001:0::/home/1001:/sbin/nologin" >> /etc/passwd \ + && mkdir -p /home/1001 \ + && chown 1001:0 /home/1001 \ + && mkdir -p /opt/ol/wlp \ + && chown -R 1001:0 /opt/ol/wlp \ + && chmod -R g+rw /opt/ol/wlp + +COPY --from=builder /usr/bin/dumb-init /usr/bin/dumb-init +COPY --from=builder /usr/bin/awk /usr/bin/awk +COPY --from=builder /usr/bin/wget /usr/bin/wget + +COPY --from=builder /usr/lib64/libpsl.so* /usr/lib64/ +COPY --from=builder /usr/lib64/libmpfr.so* /usr/lib64/ + +# Copy the runtime and licenses +COPY --from=builder --chown=1001:0 /opt/ol/wlp /opt/ol/wlp +COPY --from=builder /licenses /licenses + +# Set Path Shortcuts +ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \ + LOG_DIR=/liberty/logs \ + WLP_OUTPUT_DIR=/opt/ol/wlp/output \ + WLP_SKIP_MAXPERMSIZE=true \ + OPENJ9_SCC=$OPENJ9_SCC + +# Configure Open Liberty +RUN /opt/ol/wlp/bin/server create \ + && rm -rf $WLP_OUTPUT_DIR/.classCache /output/workarea \ + && rm -rf /opt/ol/wlp/usr/servers/defaultServer/server.env + +# Create symlinks && set permissions for non-root user +RUN mkdir /logs \ + && chown -R 1001:0 /logs \ + && chmod -R g+rw /logs \ + && mkdir -p /opt/ol/wlp/usr/shared/resources/lib.index.cache \ + && ln -s /opt/ol/wlp/usr/shared/resources/lib.index.cache /lib.index.cache \ + && mkdir -p $WLP_OUTPUT_DIR/defaultServer \ + && ln -s $WLP_OUTPUT_DIR/defaultServer /output \ + && ln -s /opt/ol/wlp/usr/servers/defaultServer /config \ + && mkdir -p /config/configDropins/defaults \ + && mkdir -p /config/configDropins/overrides \ + && ln -s /opt/ol/wlp /liberty \ + && ln -s /opt/ol/fixes /fixes \ + && echo "" > /config/configDropins/defaults/open-default-port.xml \ + && chown -R 1001:0 /config \ + && chmod -R g+rw /config \ + && chown -R 1001:0 /opt/ol/wlp/usr \ + && chmod -R g+rw /opt/ol/wlp/usr \ + && chown -R 1001:0 /opt/ol/wlp/output \ + && chmod -R g+rw /opt/ol/wlp/output \ + && chown -R 1001:0 /opt/ol/helpers \ + && chmod -R ug+rwx /opt/ol/helpers \ + && chown -R 1001:0 /opt/ol/fixes \ + && chmod -R g+rwx /opt/ol/fixes \ + && mkdir /etc/wlp \ + && chown -R 1001:0 /etc/wlp \ + && chmod -R g+rw /etc/wlp \ + && if [ -e /etc/instanton.ld.so.cache ]; then chmod g+w /etc/ld.so.cache; fi \ + && ln -s /logs /liberty/logs \ + && mkdir /serviceability \ + && chown -R 1001:0 /serviceability \ + && chmod -R g+rw /serviceability + +# Create a new SCC layer +RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \ + && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache /output/workarea \ + && chown -R 1001:0 /opt/ol/wlp/output \ + && chmod -R g+rwx /opt/ol/wlp/output + +#These settings are needed so that we can run as a different user than 1001 after server warmup +ENV RANDFILE=/tmp/.rnd \ + OPENJ9_JAVA_OPTIONS="-XX:+IgnoreUnrecognizedVMOptions -XX:+IdleTuningGcOnIdle -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,readonly,nonFatal -Dosgi.checkConfiguration=false" + +USER 1001 + +EXPOSE 9080 9443 + +ENTRYPOINT ["/opt/ol/helpers/runtime/docker-server.sh"] +CMD ["/opt/ol/wlp/bin/server", "run", "defaultServer"] + diff --git a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.openjdk21 b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.openjdk21 new file mode 100755 index 00000000..0b69f6f2 --- /dev/null +++ b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.openjdk21 @@ -0,0 +1,164 @@ +FROM registry.access.redhat.com/ubi10/ubi-minimal:latest AS builder + +USER root + +ARG LIBERTY_VERSION=26.0.0.8 +ARG LIBERTY_SHA=6394fee2c842008e9e36f3474c23330bfe467f48 +ARG LIBERTY_DOWNLOAD_URL=https://repo1.maven.org/maven2/io/openliberty/openliberty-kernel/$LIBERTY_VERSION/openliberty-kernel-$LIBERTY_VERSION.zip + +ARG VERBOSE=false + +# If there is a local copy of the image use that instead +COPY resources/ /tmp/ + +# Install Open Liberty +RUN microdnf -y install shadow-utils wget unzip openssl \ + && if [ ! -f /tmp/wlp.zip ]; then wget -q $LIBERTY_DOWNLOAD_URL -U UA-Open-Liberty-Docker -O /tmp/wlp.zip; fi \ + && echo "$LIBERTY_SHA /tmp/wlp.zip" > /tmp/wlp.zip.sha1 \ + && sha1sum -c /tmp/wlp.zip.sha1 \ + && chmod -R u+x /usr/bin \ + && unzip -q /tmp/wlp.zip -d /opt/ol \ + && mkdir -p /licenses \ + && cp /opt/ol/wlp/LICENSE /licenses/ \ + && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ + && chown -R 1001:0 /opt/ol/wlp \ + && chmod -R g+rw /opt/ol/wlp + +# Install dumb-init +RUN set -eux; \ + ARCH="$(uname -m)"; \ + case "${ARCH}" in \ + aarch64|arm64) \ + DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_aarch64'; \ + DUMB_INIT_SHA256=b7d648f97154a99c539b63c55979cd29f005f88430fb383007fe3458340b795e; \ + ;; \ + amd64|x86_64) \ + DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_x86_64'; \ + DUMB_INIT_SHA256=e874b55f3279ca41415d290c512a7ba9d08f98041b28ae7c2acb19a545f1c4df; \ + ;; \ + ppc64el|ppc64le) \ + DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_ppc64le'; \ + DUMB_INIT_SHA256=3d15e80e29f0f4fa1fc686b00613a2220bc37e83a35283d4b4cca1fbd0a5609f; \ + ;; \ + s390x) \ + DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_s390x'; \ + DUMB_INIT_SHA256=47e4601b152fc6dcb1891e66c30ecc62a2939fd7ffd1515a7c30f281cfec53b7; \ + ;;\ + *) \ + echo "Unsupported arch: ${ARCH}"; \ + exit 1; \ + ;; \ + esac; \ + curl -LfsSo /usr/bin/dumb-init ${DUMB_INIT_URL}; \ + echo "${DUMB_INIT_SHA256} */usr/bin/dumb-init" | sha256sum -c -; \ + chmod +x /usr/bin/dumb-init; + +FROM icr.io/appcafe/ibm-semeru-runtimes:open-21-jre-ubi10-micro + +USER root + +ARG LIBERTY_VERSION=26.0.0.8 +ARG LIBERTY_BUILD_LABEL=cl260820260725-1102 + +ARG OPENJ9_SCC=true +ARG VERBOSE=false + +LABEL org.opencontainers.image.authors="Leo Christy Jesuraj, Iain Lewis, Melissa Lee, Kirby Chin" \ + org.opencontainers.image.vendor="Open Liberty" \ + org.opencontainers.image.url="https://openliberty.io/" \ + org.opencontainers.image.source="https://github.com/OpenLiberty/ci.docker" \ + org.opencontainers.image.version="$LIBERTY_VERSION" \ + org.opencontainers.image.revision="$LIBERTY_BUILD_LABEL" \ + liberty.version="$LIBERTY_VERSION" \ + io.openliberty.version="$LIBERTY_VERSION" \ + vendor="Open Liberty" \ + name="Open Liberty" \ + version="$LIBERTY_VERSION" \ + summary="Image for Open Liberty with IBM Semeru Runtime Open Edition OpenJDK 21 with OpenJ9 and UBI 10 micro" \ + description="This image contains the Open Liberty runtime with IBM Semeru Runtime Open Edition OpenJDK 21 with OpenJ9 and Red Hat UBI 10 micro as the base OS. For more information on this image please see https://github.com/OpenLiberty/ci.docker#building-an-application-image" + +COPY NOTICES /opt/ol/NOTICES +COPY helpers /opt/ol/helpers +COPY fixes/ /opt/ol/fixes/ + +# Add default user 1001 and create wlp with right user/permissions before copying +RUN echo "1001:x:1001:0::/home/1001:/sbin/nologin" >> /etc/passwd \ + && mkdir -p /home/1001 \ + && chown 1001:0 /home/1001 \ + && mkdir -p /opt/ol/wlp \ + && chown -R 1001:0 /opt/ol/wlp \ + && chmod -R g+rw /opt/ol/wlp + +COPY --from=builder /usr/bin/dumb-init /usr/bin/dumb-init +COPY --from=builder /usr/bin/awk /usr/bin/awk +COPY --from=builder /usr/bin/wget /usr/bin/wget + +COPY --from=builder /usr/lib64/libpsl.so* /usr/lib64/ +COPY --from=builder /usr/lib64/libmpfr.so* /usr/lib64/ + +# Copy the runtime and licenses +COPY --from=builder --chown=1001:0 /opt/ol/wlp /opt/ol/wlp +COPY --from=builder /licenses /licenses + +# Set Path Shortcuts +ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \ + LOG_DIR=/liberty/logs \ + WLP_OUTPUT_DIR=/opt/ol/wlp/output \ + WLP_SKIP_MAXPERMSIZE=true \ + OPENJ9_SCC=$OPENJ9_SCC + +# Configure Open Liberty +RUN /opt/ol/wlp/bin/server create \ + && rm -rf $WLP_OUTPUT_DIR/.classCache /output/workarea \ + && rm -rf /opt/ol/wlp/usr/servers/defaultServer/server.env + +# Create symlinks && set permissions for non-root user +RUN mkdir /logs \ + && chown -R 1001:0 /logs \ + && chmod -R g+rw /logs \ + && mkdir -p /opt/ol/wlp/usr/shared/resources/lib.index.cache \ + && ln -s /opt/ol/wlp/usr/shared/resources/lib.index.cache /lib.index.cache \ + && mkdir -p $WLP_OUTPUT_DIR/defaultServer \ + && ln -s $WLP_OUTPUT_DIR/defaultServer /output \ + && ln -s /opt/ol/wlp/usr/servers/defaultServer /config \ + && mkdir -p /config/configDropins/defaults \ + && mkdir -p /config/configDropins/overrides \ + && ln -s /opt/ol/wlp /liberty \ + && ln -s /opt/ol/fixes /fixes \ + && echo "" > /config/configDropins/defaults/open-default-port.xml \ + && chown -R 1001:0 /config \ + && chmod -R g+rw /config \ + && chown -R 1001:0 /opt/ol/wlp/usr \ + && chmod -R g+rw /opt/ol/wlp/usr \ + && chown -R 1001:0 /opt/ol/wlp/output \ + && chmod -R g+rw /opt/ol/wlp/output \ + && chown -R 1001:0 /opt/ol/helpers \ + && chmod -R ug+rwx /opt/ol/helpers \ + && chown -R 1001:0 /opt/ol/fixes \ + && chmod -R g+rwx /opt/ol/fixes \ + && mkdir /etc/wlp \ + && chown -R 1001:0 /etc/wlp \ + && chmod -R g+rw /etc/wlp \ + && if [ -e /etc/instanton.ld.so.cache ]; then chmod g+w /etc/ld.so.cache; fi \ + && ln -s /logs /liberty/logs \ + && mkdir /serviceability \ + && chown -R 1001:0 /serviceability \ + && chmod -R g+rw /serviceability + +# Create a new SCC layer +RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \ + && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache /output/workarea \ + && chown -R 1001:0 /opt/ol/wlp/output \ + && chmod -R g+rwx /opt/ol/wlp/output + +#These settings are needed so that we can run as a different user than 1001 after server warmup +ENV RANDFILE=/tmp/.rnd \ + OPENJ9_JAVA_OPTIONS="-XX:+IgnoreUnrecognizedVMOptions -XX:+IdleTuningGcOnIdle -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,readonly,nonFatal -Dosgi.checkConfiguration=false" + +USER 1001 + +EXPOSE 9080 9443 + +ENTRYPOINT ["/opt/ol/helpers/runtime/docker-server.sh"] +CMD ["/opt/ol/wlp/bin/server", "run", "defaultServer"] + diff --git a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.openjdk25 b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.openjdk25 new file mode 100755 index 00000000..71bc7950 --- /dev/null +++ b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.openjdk25 @@ -0,0 +1,164 @@ +FROM registry.access.redhat.com/ubi10/ubi-minimal:latest AS builder + +USER root + +ARG LIBERTY_VERSION=26.0.0.8 +ARG LIBERTY_SHA=6394fee2c842008e9e36f3474c23330bfe467f48 +ARG LIBERTY_DOWNLOAD_URL=https://repo1.maven.org/maven2/io/openliberty/openliberty-kernel/$LIBERTY_VERSION/openliberty-kernel-$LIBERTY_VERSION.zip + +ARG VERBOSE=false + +# If there is a local copy of the image use that instead +COPY resources/ /tmp/ + +# Install Open Liberty +RUN microdnf -y install shadow-utils wget unzip openssl \ + && if [ ! -f /tmp/wlp.zip ]; then wget -q $LIBERTY_DOWNLOAD_URL -U UA-Open-Liberty-Docker -O /tmp/wlp.zip; fi \ + && echo "$LIBERTY_SHA /tmp/wlp.zip" > /tmp/wlp.zip.sha1 \ + && sha1sum -c /tmp/wlp.zip.sha1 \ + && chmod -R u+x /usr/bin \ + && unzip -q /tmp/wlp.zip -d /opt/ol \ + && mkdir -p /licenses \ + && cp /opt/ol/wlp/LICENSE /licenses/ \ + && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ + && chown -R 1001:0 /opt/ol/wlp \ + && chmod -R g+rw /opt/ol/wlp + +# Install dumb-init +RUN set -eux; \ + ARCH="$(uname -m)"; \ + case "${ARCH}" in \ + aarch64|arm64) \ + DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_aarch64'; \ + DUMB_INIT_SHA256=b7d648f97154a99c539b63c55979cd29f005f88430fb383007fe3458340b795e; \ + ;; \ + amd64|x86_64) \ + DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_x86_64'; \ + DUMB_INIT_SHA256=e874b55f3279ca41415d290c512a7ba9d08f98041b28ae7c2acb19a545f1c4df; \ + ;; \ + ppc64el|ppc64le) \ + DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_ppc64le'; \ + DUMB_INIT_SHA256=3d15e80e29f0f4fa1fc686b00613a2220bc37e83a35283d4b4cca1fbd0a5609f; \ + ;; \ + s390x) \ + DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_s390x'; \ + DUMB_INIT_SHA256=47e4601b152fc6dcb1891e66c30ecc62a2939fd7ffd1515a7c30f281cfec53b7; \ + ;;\ + *) \ + echo "Unsupported arch: ${ARCH}"; \ + exit 1; \ + ;; \ + esac; \ + curl -LfsSo /usr/bin/dumb-init ${DUMB_INIT_URL}; \ + echo "${DUMB_INIT_SHA256} */usr/bin/dumb-init" | sha256sum -c -; \ + chmod +x /usr/bin/dumb-init; + +FROM icr.io/appcafe/ibm-semeru-runtimes:open-25-jre-ubi10-micro + +USER root + +ARG LIBERTY_VERSION=26.0.0.8 +ARG LIBERTY_BUILD_LABEL=cl260820260725-1102 + +ARG OPENJ9_SCC=true +ARG VERBOSE=false + +LABEL org.opencontainers.image.authors="Leo Christy Jesuraj, Iain Lewis, Melissa Lee, Kirby Chin" \ + org.opencontainers.image.vendor="Open Liberty" \ + org.opencontainers.image.url="https://openliberty.io/" \ + org.opencontainers.image.source="https://github.com/OpenLiberty/ci.docker" \ + org.opencontainers.image.version="$LIBERTY_VERSION" \ + org.opencontainers.image.revision="$LIBERTY_BUILD_LABEL" \ + liberty.version="$LIBERTY_VERSION" \ + io.openliberty.version="$LIBERTY_VERSION" \ + vendor="Open Liberty" \ + name="Open Liberty" \ + version="$LIBERTY_VERSION" \ + summary="Image for Open Liberty with IBM Semeru Runtime Open Edition OpenJDK 25 with OpenJ9 and UBI 10 micro" \ + description="This image contains the Open Liberty runtime with IBM Semeru Runtime Open Edition OpenJDK 25 with OpenJ9 and Red Hat UBI 10 micro as the base OS. For more information on this image please see https://github.com/OpenLiberty/ci.docker#building-an-application-image" + +COPY NOTICES /opt/ol/NOTICES +COPY helpers /opt/ol/helpers +COPY fixes/ /opt/ol/fixes/ + +# Add default user 1001 and create wlp with right user/permissions before copying +RUN echo "1001:x:1001:0::/home/1001:/sbin/nologin" >> /etc/passwd \ + && mkdir -p /home/1001 \ + && chown 1001:0 /home/1001 \ + && mkdir -p /opt/ol/wlp \ + && chown -R 1001:0 /opt/ol/wlp \ + && chmod -R g+rw /opt/ol/wlp + +COPY --from=builder /usr/bin/dumb-init /usr/bin/dumb-init +COPY --from=builder /usr/bin/awk /usr/bin/awk +COPY --from=builder /usr/bin/wget /usr/bin/wget + +COPY --from=builder /usr/lib64/libpsl.so* /usr/lib64/ +COPY --from=builder /usr/lib64/libmpfr.so* /usr/lib64/ + +# Copy the runtime and licenses +COPY --from=builder --chown=1001:0 /opt/ol/wlp /opt/ol/wlp +COPY --from=builder /licenses /licenses + +# Set Path Shortcuts +ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \ + LOG_DIR=/liberty/logs \ + WLP_OUTPUT_DIR=/opt/ol/wlp/output \ + WLP_SKIP_MAXPERMSIZE=true \ + OPENJ9_SCC=$OPENJ9_SCC + +# Configure Open Liberty +RUN /opt/ol/wlp/bin/server create \ + && rm -rf $WLP_OUTPUT_DIR/.classCache /output/workarea \ + && rm -rf /opt/ol/wlp/usr/servers/defaultServer/server.env + +# Create symlinks && set permissions for non-root user +RUN mkdir /logs \ + && chown -R 1001:0 /logs \ + && chmod -R g+rw /logs \ + && mkdir -p /opt/ol/wlp/usr/shared/resources/lib.index.cache \ + && ln -s /opt/ol/wlp/usr/shared/resources/lib.index.cache /lib.index.cache \ + && mkdir -p $WLP_OUTPUT_DIR/defaultServer \ + && ln -s $WLP_OUTPUT_DIR/defaultServer /output \ + && ln -s /opt/ol/wlp/usr/servers/defaultServer /config \ + && mkdir -p /config/configDropins/defaults \ + && mkdir -p /config/configDropins/overrides \ + && ln -s /opt/ol/wlp /liberty \ + && ln -s /opt/ol/fixes /fixes \ + && echo "" > /config/configDropins/defaults/open-default-port.xml \ + && chown -R 1001:0 /config \ + && chmod -R g+rw /config \ + && chown -R 1001:0 /opt/ol/wlp/usr \ + && chmod -R g+rw /opt/ol/wlp/usr \ + && chown -R 1001:0 /opt/ol/wlp/output \ + && chmod -R g+rw /opt/ol/wlp/output \ + && chown -R 1001:0 /opt/ol/helpers \ + && chmod -R ug+rwx /opt/ol/helpers \ + && chown -R 1001:0 /opt/ol/fixes \ + && chmod -R g+rwx /opt/ol/fixes \ + && mkdir /etc/wlp \ + && chown -R 1001:0 /etc/wlp \ + && chmod -R g+rw /etc/wlp \ + && if [ -e /etc/instanton.ld.so.cache ]; then chmod g+w /etc/ld.so.cache; fi \ + && ln -s /logs /liberty/logs \ + && mkdir /serviceability \ + && chown -R 1001:0 /serviceability \ + && chmod -R g+rw /serviceability + +# Create a new SCC layer +RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \ + && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache /output/workarea \ + && chown -R 1001:0 /opt/ol/wlp/output \ + && chmod -R g+rwx /opt/ol/wlp/output + +#These settings are needed so that we can run as a different user than 1001 after server warmup +ENV RANDFILE=/tmp/.rnd \ + OPENJ9_JAVA_OPTIONS="-XX:+IgnoreUnrecognizedVMOptions -XX:+IdleTuningGcOnIdle -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,readonly,nonFatal -Dosgi.checkConfiguration=false" + +USER 1001 + +EXPOSE 9080 9443 + +ENTRYPOINT ["/opt/ol/helpers/runtime/docker-server.sh"] +CMD ["/opt/ol/wlp/bin/server", "run", "defaultServer"] + diff --git a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.openjdk8 b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.openjdk8 new file mode 100755 index 00000000..f6fb8586 --- /dev/null +++ b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.openjdk8 @@ -0,0 +1,164 @@ +FROM registry.access.redhat.com/ubi10/ubi-minimal:latest AS builder + +USER root + +ARG LIBERTY_VERSION=26.0.0.8 +ARG LIBERTY_SHA=6394fee2c842008e9e36f3474c23330bfe467f48 +ARG LIBERTY_DOWNLOAD_URL=https://repo1.maven.org/maven2/io/openliberty/openliberty-kernel/$LIBERTY_VERSION/openliberty-kernel-$LIBERTY_VERSION.zip + +ARG VERBOSE=false + +# If there is a local copy of the image use that instead +COPY resources/ /tmp/ + +# Install Open Liberty +RUN microdnf -y install shadow-utils wget unzip openssl \ + && if [ ! -f /tmp/wlp.zip ]; then wget -q $LIBERTY_DOWNLOAD_URL -U UA-Open-Liberty-Docker -O /tmp/wlp.zip; fi \ + && echo "$LIBERTY_SHA /tmp/wlp.zip" > /tmp/wlp.zip.sha1 \ + && sha1sum -c /tmp/wlp.zip.sha1 \ + && chmod -R u+x /usr/bin \ + && unzip -q /tmp/wlp.zip -d /opt/ol \ + && mkdir -p /licenses \ + && cp /opt/ol/wlp/LICENSE /licenses/ \ + && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ + && chown -R 1001:0 /opt/ol/wlp \ + && chmod -R g+rw /opt/ol/wlp + +# Install dumb-init +RUN set -eux; \ + ARCH="$(uname -m)"; \ + case "${ARCH}" in \ + aarch64|arm64) \ + DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_aarch64'; \ + DUMB_INIT_SHA256=b7d648f97154a99c539b63c55979cd29f005f88430fb383007fe3458340b795e; \ + ;; \ + amd64|x86_64) \ + DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_x86_64'; \ + DUMB_INIT_SHA256=e874b55f3279ca41415d290c512a7ba9d08f98041b28ae7c2acb19a545f1c4df; \ + ;; \ + ppc64el|ppc64le) \ + DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_ppc64le'; \ + DUMB_INIT_SHA256=3d15e80e29f0f4fa1fc686b00613a2220bc37e83a35283d4b4cca1fbd0a5609f; \ + ;; \ + s390x) \ + DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_s390x'; \ + DUMB_INIT_SHA256=47e4601b152fc6dcb1891e66c30ecc62a2939fd7ffd1515a7c30f281cfec53b7; \ + ;;\ + *) \ + echo "Unsupported arch: ${ARCH}"; \ + exit 1; \ + ;; \ + esac; \ + curl -LfsSo /usr/bin/dumb-init ${DUMB_INIT_URL}; \ + echo "${DUMB_INIT_SHA256} */usr/bin/dumb-init" | sha256sum -c -; \ + chmod +x /usr/bin/dumb-init; + +FROM icr.io/appcafe/ibm-semeru-runtimes:open-8-jre-ubi10-micro + +USER root + +ARG LIBERTY_VERSION=26.0.0.8 +ARG LIBERTY_BUILD_LABEL=cl260820260725-1102 + +ARG OPENJ9_SCC=true +ARG VERBOSE=false + +LABEL org.opencontainers.image.authors="Leo Christy Jesuraj, Iain Lewis, Melissa Lee, Kirby Chin" \ + org.opencontainers.image.vendor="Open Liberty" \ + org.opencontainers.image.url="https://openliberty.io/" \ + org.opencontainers.image.source="https://github.com/OpenLiberty/ci.docker" \ + org.opencontainers.image.version="$LIBERTY_VERSION" \ + org.opencontainers.image.revision="$LIBERTY_BUILD_LABEL" \ + liberty.version="$LIBERTY_VERSION" \ + io.openliberty.version="$LIBERTY_VERSION" \ + vendor="Open Liberty" \ + name="Open Liberty" \ + version="$LIBERTY_VERSION" \ + summary="Image for Open Liberty with IBM Semeru Runtime Open Edition OpenJDK 8 with OpenJ9 and UBI 10 micro" \ + description="This image contains the Open Liberty runtime with IBM Semeru Runtime Open Edition OpenJDK 8 with OpenJ9 and Red Hat UBI 10 micro as the base OS. For more information on this image please see https://github.com/OpenLiberty/ci.docker#building-an-application-image" + +COPY NOTICES /opt/ol/NOTICES +COPY helpers /opt/ol/helpers +COPY fixes/ /opt/ol/fixes/ + +# Add default user 1001 and create wlp with right user/permissions before copying +RUN echo "1001:x:1001:0::/home/1001:/sbin/nologin" >> /etc/passwd \ + && mkdir -p /home/1001 \ + && chown 1001:0 /home/1001 \ + && mkdir -p /opt/ol/wlp \ + && chown -R 1001:0 /opt/ol/wlp \ + && chmod -R g+rw /opt/ol/wlp + +COPY --from=builder /usr/bin/dumb-init /usr/bin/dumb-init +COPY --from=builder /usr/bin/awk /usr/bin/awk +COPY --from=builder /usr/bin/wget /usr/bin/wget + +COPY --from=builder /usr/lib64/libpsl.so* /usr/lib64/ +COPY --from=builder /usr/lib64/libmpfr.so* /usr/lib64/ + +# Copy the runtime and licenses +COPY --from=builder --chown=1001:0 /opt/ol/wlp /opt/ol/wlp +COPY --from=builder /licenses /licenses + +# Set Path Shortcuts +ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \ + LOG_DIR=/liberty/logs \ + WLP_OUTPUT_DIR=/opt/ol/wlp/output \ + WLP_SKIP_MAXPERMSIZE=true \ + OPENJ9_SCC=$OPENJ9_SCC + +# Configure Open Liberty +RUN /opt/ol/wlp/bin/server create \ + && rm -rf $WLP_OUTPUT_DIR/.classCache /output/workarea \ + && rm -rf /opt/ol/wlp/usr/servers/defaultServer/server.env + +# Create symlinks && set permissions for non-root user +RUN mkdir /logs \ + && chown -R 1001:0 /logs \ + && chmod -R g+rw /logs \ + && mkdir -p /opt/ol/wlp/usr/shared/resources/lib.index.cache \ + && ln -s /opt/ol/wlp/usr/shared/resources/lib.index.cache /lib.index.cache \ + && mkdir -p $WLP_OUTPUT_DIR/defaultServer \ + && ln -s $WLP_OUTPUT_DIR/defaultServer /output \ + && ln -s /opt/ol/wlp/usr/servers/defaultServer /config \ + && mkdir -p /config/configDropins/defaults \ + && mkdir -p /config/configDropins/overrides \ + && ln -s /opt/ol/wlp /liberty \ + && ln -s /opt/ol/fixes /fixes \ + && echo "" > /config/configDropins/defaults/open-default-port.xml \ + && chown -R 1001:0 /config \ + && chmod -R g+rw /config \ + && chown -R 1001:0 /opt/ol/wlp/usr \ + && chmod -R g+rw /opt/ol/wlp/usr \ + && chown -R 1001:0 /opt/ol/wlp/output \ + && chmod -R g+rw /opt/ol/wlp/output \ + && chown -R 1001:0 /opt/ol/helpers \ + && chmod -R ug+rwx /opt/ol/helpers \ + && chown -R 1001:0 /opt/ol/fixes \ + && chmod -R g+rwx /opt/ol/fixes \ + && mkdir /etc/wlp \ + && chown -R 1001:0 /etc/wlp \ + && chmod -R g+rw /etc/wlp \ + && if [ -e /etc/instanton.ld.so.cache ]; then chmod g+w /etc/ld.so.cache; fi \ + && ln -s /logs /liberty/logs \ + && mkdir /serviceability \ + && chown -R 1001:0 /serviceability \ + && chmod -R g+rw /serviceability + +# Create a new SCC layer +RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \ + && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache /output/workarea \ + && chown -R 1001:0 /opt/ol/wlp/output \ + && chmod -R g+rwx /opt/ol/wlp/output + +#These settings are needed so that we can run as a different user than 1001 after server warmup +ENV RANDFILE=/tmp/.rnd \ + OPENJ9_JAVA_OPTIONS="-XX:+IgnoreUnrecognizedVMOptions -XX:+IdleTuningGcOnIdle -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,readonly,nonFatal -Dosgi.checkConfiguration=false" + +USER 1001 + +EXPOSE 9080 9443 + +ENTRYPOINT ["/opt/ol/helpers/runtime/docker-server.sh"] +CMD ["/opt/ol/wlp/bin/server", "run", "defaultServer"] + diff --git a/releases/26.0.0.8/kernel-slim/helpers/build/populate_scc.sh b/releases/26.0.0.8/kernel-slim/helpers/build/populate_scc.sh index 1012a07a..1c4cae57 100755 --- a/releases/26.0.0.8/kernel-slim/helpers/build/populate_scc.sh +++ b/releases/26.0.0.8/kernel-slim/helpers/build/populate_scc.sh @@ -81,10 +81,10 @@ do -s Size of the SCC in megabytes (m suffix required). (Default: $SCC_SIZE) -t Trim the SCC to eliminate most of the free space, if any. -d Don't trim the SCC. - -w Use curl to warm an endpoint during SCC creation. (Default: $WARM_ENDPOINT) + -w Use wget to warm an endpoint during SCC creation. (Default: $WARM_ENDPOINT) -c Do not warm an endpoint during SCC creation. -u The URL endpoint to warm during SCC creation. (Default: $WARM_ENDPOINT_URL) - -m Use curl to warm the openapi endpoint during SCC creation. (Default: $WARM_OPENAPI_ENDPOINT) + -m Use wget to warm the openapi endpoint during SCC creation. (Default: $WARM_OPENAPI_ENDPOINT) -l Do not warm the openapi endpoint during SCC creation. -o The Open API URL endpoint to warm during SCC creation. (Default: $WARM_ENDPOINT_OPENAPI_URL) @@ -117,11 +117,11 @@ then if [ ${WARM_ENDPOINT} == true ] then - curl --silent --output /dev/null --show-error --fail --max-time 5 ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing" + wget -q -O /dev/null -T 5 ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing" fi if [ ${WARM_OPENAPI_ENDPOINT} == true ] then - curl --silent --output /dev/null --show-error --fail --max-time 5 ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing" + wget -q -O /dev/null -T 5 ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing" fi /opt/ol/wlp/bin/server stop @@ -152,11 +152,11 @@ do if [ ${WARM_ENDPOINT} == true ] then - curl --silent --output /dev/null --show-error --fail --max-time 5 ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing" + wget -q -O /dev/null -T 5 ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing" fi if [ ${WARM_OPENAPI_ENDPOINT} == true ] then - curl --silent --output /dev/null --show-error --fail --max-time 5 ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing" + wget -q -O /dev/null -T 5 ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing" fi /opt/ol/wlp/bin/server stop From 9688811295f68c2636fe618262c5bcd989a7ca97 Mon Sep 17 00:00:00 2001 From: Melissa Lee Date: Thu, 13 Aug 2026 09:35:24 -0400 Subject: [PATCH 02/14] IBM Java 8 image edit --- .../Dockerfile.ubi10-micro.ibmjava8 | 2 +- .../Dockerfile.ubi10-micro.openjdk25.test | 198 ++++++++++++++++++ 2 files changed, 199 insertions(+), 1 deletion(-) create mode 100755 releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.openjdk25.test diff --git a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.ibmjava8 b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.ibmjava8 index 224137e0..53964954 100644 --- a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.ibmjava8 +++ b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.ibmjava8 @@ -62,7 +62,7 @@ RUN set -eux; \ echo "${DUMB_INIT_SHA256} */usr/bin/dumb-init" | sha256sum -c -; \ chmod +x /usr/bin/dumb-init; -FROM ibmjava:10-ubi-micro +FROM ibmjava:8-ubi10-micro USER root diff --git a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.openjdk25.test b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.openjdk25.test new file mode 100755 index 00000000..1d2b92da --- /dev/null +++ b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.openjdk25.test @@ -0,0 +1,198 @@ +FROM registry.access.redhat.com/ubi10/ubi-minimal:latest AS builder + +USER root + +ARG LIBERTY_VERSION=26.0.0.8 +ARG LIBERTY_SHA=6394fee2c842008e9e36f3474c23330bfe467f48 +ARG LIBERTY_DOWNLOAD_URL=https://repo1.maven.org/maven2/io/openliberty/openliberty-kernel/$LIBERTY_VERSION/openliberty-kernel-$LIBERTY_VERSION.zip + +ARG VERBOSE=false + +# If there is a local copy of the image use that instead +COPY resources/ /tmp/ + +# Install Open Liberty +RUN microdnf -y install shadow-utils wget unzip openssl \ + && if [ ! -f /tmp/wlp.zip ]; then wget -q $LIBERTY_DOWNLOAD_URL -U UA-Open-Liberty-Docker -O /tmp/wlp.zip; fi \ + && echo "$LIBERTY_SHA /tmp/wlp.zip" > /tmp/wlp.zip.sha1 \ + && sha1sum -c /tmp/wlp.zip.sha1 \ + && chmod -R u+x /usr/bin \ + && unzip -q /tmp/wlp.zip -d /opt/ol \ + && mkdir -p /licenses \ + && cp /opt/ol/wlp/LICENSE /licenses/ \ + && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ + && chown -R 1001:0 /opt/ol/wlp \ + && chmod -R g+rw /opt/ol/wlp + +# Install dumb-init +RUN set -eux; \ + ARCH="$(uname -m)"; \ + case "${ARCH}" in \ + aarch64|arm64) \ + DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_aarch64'; \ + DUMB_INIT_SHA256=b7d648f97154a99c539b63c55979cd29f005f88430fb383007fe3458340b795e; \ + ;; \ + amd64|x86_64) \ + DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_x86_64'; \ + DUMB_INIT_SHA256=e874b55f3279ca41415d290c512a7ba9d08f98041b28ae7c2acb19a545f1c4df; \ + ;; \ + ppc64el|ppc64le) \ + DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_ppc64le'; \ + DUMB_INIT_SHA256=3d15e80e29f0f4fa1fc686b00613a2220bc37e83a35283d4b4cca1fbd0a5609f; \ + ;; \ + s390x) \ + DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_s390x'; \ + DUMB_INIT_SHA256=47e4601b152fc6dcb1891e66c30ecc62a2939fd7ffd1515a7c30f281cfec53b7; \ + ;;\ + *) \ + echo "Unsupported arch: ${ARCH}"; \ + exit 1; \ + ;; \ + esac; \ + curl -LfsSo /usr/bin/dumb-init ${DUMB_INIT_URL}; \ + echo "${DUMB_INIT_SHA256} */usr/bin/dumb-init" | sha256sum -c -; \ + chmod +x /usr/bin/dumb-init; + +FROM icr.io/appcafe/ibm-semeru-runtimes:open-25-jre-ubi10-micro + +USER root + +ARG LIBERTY_VERSION=26.0.0.8 +ARG LIBERTY_BUILD_LABEL=cl260820260725-1102 + +ARG OPENJ9_SCC=true +ARG VERBOSE=false + +LABEL org.opencontainers.image.authors="Leo Christy Jesuraj, Iain Lewis, Melissa Lee, Kirby Chin" \ + org.opencontainers.image.vendor="Open Liberty" \ + org.opencontainers.image.url="https://openliberty.io/" \ + org.opencontainers.image.source="https://github.com/OpenLiberty/ci.docker" \ + org.opencontainers.image.version="$LIBERTY_VERSION" \ + org.opencontainers.image.revision="$LIBERTY_BUILD_LABEL" \ + liberty.version="$LIBERTY_VERSION" \ + io.openliberty.version="$LIBERTY_VERSION" \ + vendor="Open Liberty" \ + name="Open Liberty" \ + version="$LIBERTY_VERSION" \ + summary="Image for Open Liberty with IBM Semeru Runtime Open Edition OpenJDK 25 with OpenJ9 and UBI 10 micro" \ + description="This image contains the Open Liberty runtime with IBM Semeru Runtime Open Edition OpenJDK 25 with OpenJ9 and Red Hat UBI 10 micro as the base OS. For more information on this image please see https://github.com/OpenLiberty/ci.docker#building-an-application-image" + +COPY NOTICES /opt/ol/NOTICES +COPY helpers /opt/ol/helpers +COPY fixes/ /opt/ol/fixes/ + +# Add default user 1001 and create wlp with right user/permissions before copying +RUN echo "1001:x:1001:0::/home/1001:/sbin/nologin" >> /etc/passwd \ + && mkdir -p /home/1001 \ + && chown 1001:0 /home/1001 \ + && mkdir -p /opt/ol/wlp \ + && chown -R 1001:0 /opt/ol/wlp \ + && chmod -R g+rw /opt/ol/wlp + +COPY --from=builder /usr/bin/dumb-init /usr/bin/dumb-init +COPY --from=builder /usr/bin/awk /usr/bin/awk + +# Neither curl nor wget exist in the ubi10-micro base image — both must be copied. +# +# curl binary: 202K | wget binary: 448K (2.2x larger) +# +# --- curl dependencies missing from micro --- +# libcurl.so.4 - curl shared library (659K) +# libnghttp2.so.14 - HTTP/2 support (161K) +# libgssapi_krb5.so.2 - Kerberos GSSAPI (351K) +# libkrb5.so.3 - Kerberos 5 (822K) +# libk5crypto.so.3 - Kerberos crypto (93K) +# libcom_err.so.2 - error messaging (24K) +# libkrb5support.so.0 - Kerberos support (65K) +# libkeyutils.so.1 - kernel key management (24K) +# +# --- wget dependencies missing from micro --- +# libpsl.so.5 - Public Suffix List (80K) +# (wget also needs libgnutls.so.30, libp11-kit.so.0, libtasn1.so.6, libffi.so.8, +# libuuid.so.1 — but those are already present in micro) +# +# --- already in micro (no copy needed for either tool) --- +# libssl.so.3 (964K), libcrypto.so.3 (5.4M), libz.so.1 (138K), +# libselinux.so.1 (196K), libpcre2-8.so.0 (651K), libidn2.so.0 (132K), +# libunistring.so.5 (1.7M), libresolv.so.2 (65K) +# +# curl is preferred over wget: smaller binary, reuses the OpenSSL stack already in +# micro, and wget's GnuTLS (3.2M) + libp11-kit (1.7M) would be a redundant TLS stack. +COPY --from=builder /usr/bin/curl /usr/bin/curl +COPY --from=builder /usr/lib64/libcurl.so* /usr/lib64/ +COPY --from=builder /usr/lib64/libnghttp2.so* /usr/lib64/ +COPY --from=builder /usr/lib64/libgssapi_krb5.so* /usr/lib64/ +COPY --from=builder /usr/lib64/libkrb5.so* /usr/lib64/ +COPY --from=builder /usr/lib64/libk5crypto.so* /usr/lib64/ +COPY --from=builder /usr/lib64/libcom_err.so* /usr/lib64/ +COPY --from=builder /usr/lib64/libkrb5support.so* /usr/lib64/ +COPY --from=builder /usr/lib64/libkeyutils.so* /usr/lib64/ +# awk dependency (libmpfr needed by gawk) +COPY --from=builder /usr/lib64/libmpfr.so* /usr/lib64/ + +# Copy the runtime and licenses +COPY --from=builder --chown=1001:0 /opt/ol/wlp /opt/ol/wlp +COPY --from=builder /licenses /licenses + +# Set Path Shortcuts +ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \ + LOG_DIR=/liberty/logs \ + WLP_OUTPUT_DIR=/opt/ol/wlp/output \ + WLP_SKIP_MAXPERMSIZE=true \ + OPENJ9_SCC=$OPENJ9_SCC + +# Configure Open Liberty +RUN /opt/ol/wlp/bin/server create \ + && rm -rf $WLP_OUTPUT_DIR/.classCache /output/workarea \ + && rm -rf /opt/ol/wlp/usr/servers/defaultServer/server.env + +# Create symlinks && set permissions for non-root user +RUN mkdir /logs \ + && chown -R 1001:0 /logs \ + && chmod -R g+rw /logs \ + && mkdir -p /opt/ol/wlp/usr/shared/resources/lib.index.cache \ + && ln -s /opt/ol/wlp/usr/shared/resources/lib.index.cache /lib.index.cache \ + && mkdir -p $WLP_OUTPUT_DIR/defaultServer \ + && ln -s $WLP_OUTPUT_DIR/defaultServer /output \ + && ln -s /opt/ol/wlp/usr/servers/defaultServer /config \ + && mkdir -p /config/configDropins/defaults \ + && mkdir -p /config/configDropins/overrides \ + && ln -s /opt/ol/wlp /liberty \ + && ln -s /opt/ol/fixes /fixes \ + && echo "" > /config/configDropins/defaults/open-default-port.xml \ + && chown -R 1001:0 /config \ + && chmod -R g+rw /config \ + && chown -R 1001:0 /opt/ol/wlp/usr \ + && chmod -R g+rw /opt/ol/wlp/usr \ + && chown -R 1001:0 /opt/ol/wlp/output \ + && chmod -R g+rw /opt/ol/wlp/output \ + && chown -R 1001:0 /opt/ol/helpers \ + && chmod -R ug+rwx /opt/ol/helpers \ + && chown -R 1001:0 /opt/ol/fixes \ + && chmod -R g+rwx /opt/ol/fixes \ + && mkdir /etc/wlp \ + && chown -R 1001:0 /etc/wlp \ + && chmod -R g+rw /etc/wlp \ + && if [ -e /etc/instanton.ld.so.cache ]; then chmod g+w /etc/ld.so.cache; fi \ + && ln -s /logs /liberty/logs \ + && mkdir /serviceability \ + && chown -R 1001:0 /serviceability \ + && chmod -R g+rw /serviceability + +# Create a new SCC layer +RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \ + && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache /output/workarea \ + && chown -R 1001:0 /opt/ol/wlp/output \ + && chmod -R g+rwx /opt/ol/wlp/output + +#These settings are needed so that we can run as a different user than 1001 after server warmup +ENV RANDFILE=/tmp/.rnd \ + OPENJ9_JAVA_OPTIONS="-XX:+IgnoreUnrecognizedVMOptions -XX:+IdleTuningGcOnIdle -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,readonly,nonFatal -Dosgi.checkConfiguration=false" + +USER 1001 + +EXPOSE 9080 9443 + +ENTRYPOINT ["/opt/ol/helpers/runtime/docker-server.sh"] +CMD ["/opt/ol/wlp/bin/server", "run", "defaultServer"] + From 38e0c5a2a36ce75b02d4e9c636471d8dc57537f7 Mon Sep 17 00:00:00 2001 From: Melissa Lee Date: Thu, 13 Aug 2026 09:36:41 -0400 Subject: [PATCH 03/14] Remove test file --- .../Dockerfile.ubi10-micro.openjdk25.test | 198 ------------------ 1 file changed, 198 deletions(-) delete mode 100755 releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.openjdk25.test diff --git a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.openjdk25.test b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.openjdk25.test deleted file mode 100755 index 1d2b92da..00000000 --- a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.openjdk25.test +++ /dev/null @@ -1,198 +0,0 @@ -FROM registry.access.redhat.com/ubi10/ubi-minimal:latest AS builder - -USER root - -ARG LIBERTY_VERSION=26.0.0.8 -ARG LIBERTY_SHA=6394fee2c842008e9e36f3474c23330bfe467f48 -ARG LIBERTY_DOWNLOAD_URL=https://repo1.maven.org/maven2/io/openliberty/openliberty-kernel/$LIBERTY_VERSION/openliberty-kernel-$LIBERTY_VERSION.zip - -ARG VERBOSE=false - -# If there is a local copy of the image use that instead -COPY resources/ /tmp/ - -# Install Open Liberty -RUN microdnf -y install shadow-utils wget unzip openssl \ - && if [ ! -f /tmp/wlp.zip ]; then wget -q $LIBERTY_DOWNLOAD_URL -U UA-Open-Liberty-Docker -O /tmp/wlp.zip; fi \ - && echo "$LIBERTY_SHA /tmp/wlp.zip" > /tmp/wlp.zip.sha1 \ - && sha1sum -c /tmp/wlp.zip.sha1 \ - && chmod -R u+x /usr/bin \ - && unzip -q /tmp/wlp.zip -d /opt/ol \ - && mkdir -p /licenses \ - && cp /opt/ol/wlp/LICENSE /licenses/ \ - && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ - && chown -R 1001:0 /opt/ol/wlp \ - && chmod -R g+rw /opt/ol/wlp - -# Install dumb-init -RUN set -eux; \ - ARCH="$(uname -m)"; \ - case "${ARCH}" in \ - aarch64|arm64) \ - DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_aarch64'; \ - DUMB_INIT_SHA256=b7d648f97154a99c539b63c55979cd29f005f88430fb383007fe3458340b795e; \ - ;; \ - amd64|x86_64) \ - DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_x86_64'; \ - DUMB_INIT_SHA256=e874b55f3279ca41415d290c512a7ba9d08f98041b28ae7c2acb19a545f1c4df; \ - ;; \ - ppc64el|ppc64le) \ - DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_ppc64le'; \ - DUMB_INIT_SHA256=3d15e80e29f0f4fa1fc686b00613a2220bc37e83a35283d4b4cca1fbd0a5609f; \ - ;; \ - s390x) \ - DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_s390x'; \ - DUMB_INIT_SHA256=47e4601b152fc6dcb1891e66c30ecc62a2939fd7ffd1515a7c30f281cfec53b7; \ - ;;\ - *) \ - echo "Unsupported arch: ${ARCH}"; \ - exit 1; \ - ;; \ - esac; \ - curl -LfsSo /usr/bin/dumb-init ${DUMB_INIT_URL}; \ - echo "${DUMB_INIT_SHA256} */usr/bin/dumb-init" | sha256sum -c -; \ - chmod +x /usr/bin/dumb-init; - -FROM icr.io/appcafe/ibm-semeru-runtimes:open-25-jre-ubi10-micro - -USER root - -ARG LIBERTY_VERSION=26.0.0.8 -ARG LIBERTY_BUILD_LABEL=cl260820260725-1102 - -ARG OPENJ9_SCC=true -ARG VERBOSE=false - -LABEL org.opencontainers.image.authors="Leo Christy Jesuraj, Iain Lewis, Melissa Lee, Kirby Chin" \ - org.opencontainers.image.vendor="Open Liberty" \ - org.opencontainers.image.url="https://openliberty.io/" \ - org.opencontainers.image.source="https://github.com/OpenLiberty/ci.docker" \ - org.opencontainers.image.version="$LIBERTY_VERSION" \ - org.opencontainers.image.revision="$LIBERTY_BUILD_LABEL" \ - liberty.version="$LIBERTY_VERSION" \ - io.openliberty.version="$LIBERTY_VERSION" \ - vendor="Open Liberty" \ - name="Open Liberty" \ - version="$LIBERTY_VERSION" \ - summary="Image for Open Liberty with IBM Semeru Runtime Open Edition OpenJDK 25 with OpenJ9 and UBI 10 micro" \ - description="This image contains the Open Liberty runtime with IBM Semeru Runtime Open Edition OpenJDK 25 with OpenJ9 and Red Hat UBI 10 micro as the base OS. For more information on this image please see https://github.com/OpenLiberty/ci.docker#building-an-application-image" - -COPY NOTICES /opt/ol/NOTICES -COPY helpers /opt/ol/helpers -COPY fixes/ /opt/ol/fixes/ - -# Add default user 1001 and create wlp with right user/permissions before copying -RUN echo "1001:x:1001:0::/home/1001:/sbin/nologin" >> /etc/passwd \ - && mkdir -p /home/1001 \ - && chown 1001:0 /home/1001 \ - && mkdir -p /opt/ol/wlp \ - && chown -R 1001:0 /opt/ol/wlp \ - && chmod -R g+rw /opt/ol/wlp - -COPY --from=builder /usr/bin/dumb-init /usr/bin/dumb-init -COPY --from=builder /usr/bin/awk /usr/bin/awk - -# Neither curl nor wget exist in the ubi10-micro base image — both must be copied. -# -# curl binary: 202K | wget binary: 448K (2.2x larger) -# -# --- curl dependencies missing from micro --- -# libcurl.so.4 - curl shared library (659K) -# libnghttp2.so.14 - HTTP/2 support (161K) -# libgssapi_krb5.so.2 - Kerberos GSSAPI (351K) -# libkrb5.so.3 - Kerberos 5 (822K) -# libk5crypto.so.3 - Kerberos crypto (93K) -# libcom_err.so.2 - error messaging (24K) -# libkrb5support.so.0 - Kerberos support (65K) -# libkeyutils.so.1 - kernel key management (24K) -# -# --- wget dependencies missing from micro --- -# libpsl.so.5 - Public Suffix List (80K) -# (wget also needs libgnutls.so.30, libp11-kit.so.0, libtasn1.so.6, libffi.so.8, -# libuuid.so.1 — but those are already present in micro) -# -# --- already in micro (no copy needed for either tool) --- -# libssl.so.3 (964K), libcrypto.so.3 (5.4M), libz.so.1 (138K), -# libselinux.so.1 (196K), libpcre2-8.so.0 (651K), libidn2.so.0 (132K), -# libunistring.so.5 (1.7M), libresolv.so.2 (65K) -# -# curl is preferred over wget: smaller binary, reuses the OpenSSL stack already in -# micro, and wget's GnuTLS (3.2M) + libp11-kit (1.7M) would be a redundant TLS stack. -COPY --from=builder /usr/bin/curl /usr/bin/curl -COPY --from=builder /usr/lib64/libcurl.so* /usr/lib64/ -COPY --from=builder /usr/lib64/libnghttp2.so* /usr/lib64/ -COPY --from=builder /usr/lib64/libgssapi_krb5.so* /usr/lib64/ -COPY --from=builder /usr/lib64/libkrb5.so* /usr/lib64/ -COPY --from=builder /usr/lib64/libk5crypto.so* /usr/lib64/ -COPY --from=builder /usr/lib64/libcom_err.so* /usr/lib64/ -COPY --from=builder /usr/lib64/libkrb5support.so* /usr/lib64/ -COPY --from=builder /usr/lib64/libkeyutils.so* /usr/lib64/ -# awk dependency (libmpfr needed by gawk) -COPY --from=builder /usr/lib64/libmpfr.so* /usr/lib64/ - -# Copy the runtime and licenses -COPY --from=builder --chown=1001:0 /opt/ol/wlp /opt/ol/wlp -COPY --from=builder /licenses /licenses - -# Set Path Shortcuts -ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \ - LOG_DIR=/liberty/logs \ - WLP_OUTPUT_DIR=/opt/ol/wlp/output \ - WLP_SKIP_MAXPERMSIZE=true \ - OPENJ9_SCC=$OPENJ9_SCC - -# Configure Open Liberty -RUN /opt/ol/wlp/bin/server create \ - && rm -rf $WLP_OUTPUT_DIR/.classCache /output/workarea \ - && rm -rf /opt/ol/wlp/usr/servers/defaultServer/server.env - -# Create symlinks && set permissions for non-root user -RUN mkdir /logs \ - && chown -R 1001:0 /logs \ - && chmod -R g+rw /logs \ - && mkdir -p /opt/ol/wlp/usr/shared/resources/lib.index.cache \ - && ln -s /opt/ol/wlp/usr/shared/resources/lib.index.cache /lib.index.cache \ - && mkdir -p $WLP_OUTPUT_DIR/defaultServer \ - && ln -s $WLP_OUTPUT_DIR/defaultServer /output \ - && ln -s /opt/ol/wlp/usr/servers/defaultServer /config \ - && mkdir -p /config/configDropins/defaults \ - && mkdir -p /config/configDropins/overrides \ - && ln -s /opt/ol/wlp /liberty \ - && ln -s /opt/ol/fixes /fixes \ - && echo "" > /config/configDropins/defaults/open-default-port.xml \ - && chown -R 1001:0 /config \ - && chmod -R g+rw /config \ - && chown -R 1001:0 /opt/ol/wlp/usr \ - && chmod -R g+rw /opt/ol/wlp/usr \ - && chown -R 1001:0 /opt/ol/wlp/output \ - && chmod -R g+rw /opt/ol/wlp/output \ - && chown -R 1001:0 /opt/ol/helpers \ - && chmod -R ug+rwx /opt/ol/helpers \ - && chown -R 1001:0 /opt/ol/fixes \ - && chmod -R g+rwx /opt/ol/fixes \ - && mkdir /etc/wlp \ - && chown -R 1001:0 /etc/wlp \ - && chmod -R g+rw /etc/wlp \ - && if [ -e /etc/instanton.ld.so.cache ]; then chmod g+w /etc/ld.so.cache; fi \ - && ln -s /logs /liberty/logs \ - && mkdir /serviceability \ - && chown -R 1001:0 /serviceability \ - && chmod -R g+rw /serviceability - -# Create a new SCC layer -RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \ - && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache /output/workarea \ - && chown -R 1001:0 /opt/ol/wlp/output \ - && chmod -R g+rwx /opt/ol/wlp/output - -#These settings are needed so that we can run as a different user than 1001 after server warmup -ENV RANDFILE=/tmp/.rnd \ - OPENJ9_JAVA_OPTIONS="-XX:+IgnoreUnrecognizedVMOptions -XX:+IdleTuningGcOnIdle -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,readonly,nonFatal -Dosgi.checkConfiguration=false" - -USER 1001 - -EXPOSE 9080 9443 - -ENTRYPOINT ["/opt/ol/helpers/runtime/docker-server.sh"] -CMD ["/opt/ol/wlp/bin/server", "run", "defaultServer"] - From cd7dd0d2c769316ab3e567b6a4a96b60061cb989 Mon Sep 17 00:00:00 2001 From: Melissa Lee Date: Fri, 14 Aug 2026 11:03:06 -0400 Subject: [PATCH 04/14] Add UBI micro to latest --- .../Dockerfile.ubi10-micro.ibmjava8 | 4 +- .../beta/Dockerfile.ubi10-micro.openjdk25 | 165 +++++++++++++++++ .../full/Dockerfile.ubi10-micro.ibmjava8 | 48 +++++ .../full/Dockerfile.ubi10-micro.openjdk11 | 48 +++++ .../full/Dockerfile.ubi10-micro.openjdk17 | 48 +++++ .../full/Dockerfile.ubi10-micro.openjdk21 | 48 +++++ .../full/Dockerfile.ubi10-micro.openjdk25 | 48 +++++ .../full/Dockerfile.ubi10-micro.openjdk8 | 48 +++++ .../Dockerfile.ubi10-micro.ibmjava8 | 173 ++++++++++++++++++ .../Dockerfile.ubi10-micro.openjdk11 | 164 +++++++++++++++++ .../Dockerfile.ubi10-micro.openjdk17 | 164 +++++++++++++++++ .../Dockerfile.ubi10-micro.openjdk21 | 164 +++++++++++++++++ .../Dockerfile.ubi10-micro.openjdk25 | 164 +++++++++++++++++ .../Dockerfile.ubi10-micro.openjdk8 | 164 +++++++++++++++++ 14 files changed, 1448 insertions(+), 2 deletions(-) create mode 100644 releases/latest/beta/Dockerfile.ubi10-micro.openjdk25 create mode 100644 releases/latest/full/Dockerfile.ubi10-micro.ibmjava8 create mode 100644 releases/latest/full/Dockerfile.ubi10-micro.openjdk11 create mode 100644 releases/latest/full/Dockerfile.ubi10-micro.openjdk17 create mode 100644 releases/latest/full/Dockerfile.ubi10-micro.openjdk21 create mode 100644 releases/latest/full/Dockerfile.ubi10-micro.openjdk25 create mode 100644 releases/latest/full/Dockerfile.ubi10-micro.openjdk8 create mode 100644 releases/latest/kernel-slim/Dockerfile.ubi10-micro.ibmjava8 create mode 100755 releases/latest/kernel-slim/Dockerfile.ubi10-micro.openjdk11 create mode 100755 releases/latest/kernel-slim/Dockerfile.ubi10-micro.openjdk17 create mode 100755 releases/latest/kernel-slim/Dockerfile.ubi10-micro.openjdk21 create mode 100755 releases/latest/kernel-slim/Dockerfile.ubi10-micro.openjdk25 create mode 100755 releases/latest/kernel-slim/Dockerfile.ubi10-micro.openjdk8 diff --git a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.ibmjava8 b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.ibmjava8 index 53964954..bc42e64d 100644 --- a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.ibmjava8 +++ b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.ibmjava8 @@ -83,8 +83,8 @@ LABEL org.opencontainers.image.authors="Leo Christy Jesuraj, Iain Lewis, Melissa vendor="Open Liberty" \ name="Open Liberty" \ version="$LIBERTY_VERSION" \ - summary="Image for Open Liberty with IBM's Java and UBI 10 minimal" \ - description="This image contains the Open Liberty runtime with IBM's Java and Red Hat UBI 10 minimal as the base OS. For more information on this image please see https://github.com/OpenLiberty/ci.docker#building-an-application-image" + summary="Image for Open Liberty with IBM's Java and UBI 10 micro" \ + description="This image contains the Open Liberty runtime with IBM's Java and Red Hat UBI 10 micro as the base OS. For more information on this image please see https://github.com/OpenLiberty/ci.docker#building-an-application-image" COPY NOTICES /opt/ol/NOTICES COPY helpers /opt/ol/helpers diff --git a/releases/latest/beta/Dockerfile.ubi10-micro.openjdk25 b/releases/latest/beta/Dockerfile.ubi10-micro.openjdk25 new file mode 100644 index 00000000..76f8ed20 --- /dev/null +++ b/releases/latest/beta/Dockerfile.ubi10-micro.openjdk25 @@ -0,0 +1,165 @@ +FROM registry.access.redhat.com/ubi10/ubi-minimal:latest AS builder + +USER root + +ARG LIBERTY_VERSION=26.0.0.9-beta +ARG LIBERTY_SHA=52af30086cb86dca8d028182eaf4091e83362fac +ARG LIBERTY_DOWNLOAD_URL=https://repo1.maven.org/maven2/io/openliberty/beta/openliberty-runtime/$LIBERTY_VERSION/openliberty-runtime-$LIBERTY_VERSION.zip + +ARG VERBOSE=false + +# If there is a local copy of the image use that instead +COPY resources/ /tmp/ + +# Install Open Liberty +RUN microdnf -y install shadow-utils wget unzip openssl \ + && if [ ! -f /tmp/wlp.zip ]; then wget -q $LIBERTY_DOWNLOAD_URL -U UA-Open-Liberty-Docker -O /tmp/wlp.zip; fi \ + && echo "$LIBERTY_SHA /tmp/wlp.zip" > /tmp/wlp.zip.sha1 \ + && sha1sum -c /tmp/wlp.zip.sha1 \ + && chmod -R u+x /usr/bin \ + && unzip -q /tmp/wlp.zip -d /opt/ol \ + && mkdir -p /licenses \ + && cp /opt/ol/wlp/LICENSE /licenses/ \ + && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ + && chown -R 1001:0 /opt/ol/wlp \ + && chmod -R g+rw /opt/ol/wlp + +# Install dumb-init +RUN set -eux; \ + ARCH="$(uname -m)"; \ + case "${ARCH}" in \ + aarch64|arm64) \ + DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_aarch64'; \ + DUMB_INIT_SHA256=b7d648f97154a99c539b63c55979cd29f005f88430fb383007fe3458340b795e; \ + ;; \ + amd64|x86_64) \ + DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_x86_64'; \ + DUMB_INIT_SHA256=e874b55f3279ca41415d290c512a7ba9d08f98041b28ae7c2acb19a545f1c4df; \ + ;; \ + ppc64el|ppc64le) \ + DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_ppc64le'; \ + DUMB_INIT_SHA256=3d15e80e29f0f4fa1fc686b00613a2220bc37e83a35283d4b4cca1fbd0a5609f; \ + ;; \ + s390x) \ + DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_s390x'; \ + DUMB_INIT_SHA256=47e4601b152fc6dcb1891e66c30ecc62a2939fd7ffd1515a7c30f281cfec53b7; \ + ;;\ + *) \ + echo "Unsupported arch: ${ARCH}"; \ + exit 1; \ + ;; \ + esac; \ + curl -LfsSo /usr/bin/dumb-init ${DUMB_INIT_URL}; \ + echo "${DUMB_INIT_SHA256} */usr/bin/dumb-init" | sha256sum -c -; \ + chmod +x /usr/bin/dumb-init; + +FROM icr.io/appcafe/ibm-semeru-runtimes:open-25-jre-ubi10-micro + +USER root + +ARG LIBERTY_VERSION=26.0.0.9-beta +ARG LIBERTY_BUILD_LABEL=cl260820260725-1102 + +ARG OPENJ9_SCC=true +ARG VERBOSE=false + +LABEL org.opencontainers.image.authors="Leo Christy Jesuraj, Iain Lewis, Melissa Lee, Kirby Chin" \ + org.opencontainers.image.vendor="Open Liberty" \ + org.opencontainers.image.url="https://openliberty.io/" \ + org.opencontainers.image.source="https://github.com/OpenLiberty/ci.docker" \ + org.opencontainers.image.version="$LIBERTY_VERSION" \ + org.opencontainers.image.revision="$LIBERTY_BUILD_LABEL" \ + liberty.version="$LIBERTY_VERSION" \ + io.openliberty.version="$LIBERTY_VERSION" \ + vendor="Open Liberty" \ + name="Open Liberty Beta" \ + version="$LIBERTY_VERSION" \ + summary="Image for Open Liberty Beta with IBM Semeru Runtime Open Edition OpenJDK 25 with OpenJ9 and UBI 10 micro" \ + description="This image contains the Open Liberty beta runtime with IBM Semeru Runtime Open Edition OpenJDK 25 with OpenJ9 and Red Hat UBI 10 micro as the base OS. For more information on this image please see https://github.com/OpenLiberty/ci.docker#building-an-application-image" + +COPY NOTICES /opt/ol/NOTICES +COPY helpers /opt/ol/helpers +COPY fixes/ /opt/ol/fixes/ + +# Add default user 1001 and create wlp with right user/permissions before copying +RUN echo "1001:x:1001:0::/home/1001:/sbin/nologin" >> /etc/passwd \ + && mkdir -p /home/1001 \ + && chown 1001:0 /home/1001 \ + && mkdir -p /opt/ol/wlp \ + && chown -R 1001:0 /opt/ol/wlp \ + && chmod -R g+rw /opt/ol/wlp + +COPY --from=builder /usr/bin/dumb-init /usr/bin/dumb-init +COPY --from=builder /usr/bin/awk /usr/bin/awk +COPY --from=builder /usr/bin/wget /usr/bin/wget + +COPY --from=builder /usr/lib64/libpsl.so* /usr/lib64/ +COPY --from=builder /usr/lib64/libmpfr.so* /usr/lib64/ + +# Copy the runtime and licenses +COPY --from=builder --chown=1001:0 /opt/ol/wlp /opt/ol/wlp +COPY --from=builder /licenses /licenses + +# Set Path Shortcuts +ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \ + LOG_DIR=/liberty/logs \ + WLP_OUTPUT_DIR=/opt/ol/wlp/output \ + WLP_SKIP_MAXPERMSIZE=true \ + OPENJ9_SCC=$OPENJ9_SCC + +# Configure Open Liberty +RUN /opt/ol/wlp/bin/server create --template=javaee8 \ + && rm -rf $WLP_OUTPUT_DIR/.classCache /output/workarea \ + && rm -rf /opt/ol/wlp/usr/servers/defaultServer/server.env + +# Create symlinks && set permissions for non-root user +RUN mkdir /logs \ + && chown -R 1001:0 /logs \ + && chmod -R g+rw /logs \ + && mkdir -p /opt/ol/wlp/usr/shared/resources/lib.index.cache \ + && ln -s /opt/ol/wlp/usr/shared/resources/lib.index.cache /lib.index.cache \ + && mkdir -p $WLP_OUTPUT_DIR/defaultServer \ + && ln -s $WLP_OUTPUT_DIR/defaultServer /output \ + && ln -s /opt/ol/wlp/usr/servers/defaultServer /config \ + && mkdir -p /config/configDropins/defaults \ + && mkdir -p /config/configDropins/overrides \ + && mkdir -p /config/dropins \ + && mkdir -p /config/apps \ + && ln -s /opt/ol/wlp /liberty \ + && ln -s /opt/ol/fixes /fixes \ + && chown -R 1001:0 /config \ + && chmod -R g+rw /config \ + && chown -R 1001:0 /opt/ol/wlp/usr \ + && chmod -R g+rw /opt/ol/wlp/usr \ + && chown -R 1001:0 /opt/ol/wlp/output \ + && chmod -R g+rw /opt/ol/wlp/output \ + && chown -R 1001:0 /opt/ol/helpers \ + && chmod -R ug+rwx /opt/ol/helpers \ + && chown -R 1001:0 /opt/ol/fixes \ + && chmod -R g+rwx /opt/ol/fixes \ + && mkdir /etc/wlp \ + && chown -R 1001:0 /etc/wlp \ + && chmod -R g+rw /etc/wlp \ + && if [ -e /etc/instanton.ld.so.cache ]; then chmod g+w /etc/ld.so.cache; fi \ + && echo "" > /config/configDropins/defaults/open-default-port.xml \ + && ln -s /logs /liberty/logs \ + && mkdir /serviceability \ + && chown -R 1001:0 /serviceability \ + && chmod -R g+rw /serviceability + +# Create a new SCC layer +RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \ + && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache \ + && chown -R 1001:0 /opt/ol/wlp/output \ + && chmod -R g+rwx /opt/ol/wlp/output + +#These settings are needed so that we can run as a different user than 1001 after server warmup +ENV RANDFILE=/tmp/.rnd \ + OPENJ9_JAVA_OPTIONS="-XX:+IgnoreUnrecognizedVMOptions -XX:+IdleTuningGcOnIdle -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,readonly,nonFatal -Dosgi.checkConfiguration=false" + +USER 1001 + +EXPOSE 9080 9443 + +ENTRYPOINT ["/opt/ol/helpers/runtime/docker-server.sh"] +CMD ["/opt/ol/wlp/bin/server", "run", "defaultServer"] diff --git a/releases/latest/full/Dockerfile.ubi10-micro.ibmjava8 b/releases/latest/full/Dockerfile.ubi10-micro.ibmjava8 new file mode 100644 index 00000000..584359bb --- /dev/null +++ b/releases/latest/full/Dockerfile.ubi10-micro.ibmjava8 @@ -0,0 +1,48 @@ +ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:kernel-slim-java8-ibmjava-ubi-micro + +FROM $PARENT_IMAGE AS installBundle + +ARG VERBOSE=false +ARG LIBERTY_VERSION=26.0.0.8 +ARG FEATURES_SHA=534d4f1b2b8cf34903b36f6e3780915f82a35419 + +# If there is a local copy of the repository use that instead +COPY resources/ /tmp/ + +# We need unzip when using a local repo +USER root +RUN microdnf -y install unzip +USER 1001 + +# Install all features +RUN set -eux; \ + if [ ! -f /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip ]; then \ + curl https://repo1.maven.org/maven2/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json > /tmp/features-$LIBERTY_VERSION.json; \ + echo "$FEATURES_SHA /tmp/features-$LIBERTY_VERSION.json" > /tmp/features-$LIBERTY_VERSION.json.sha1; \ + sha1sum -c /tmp/features-$LIBERTY_VERSION.json.sha1; \ + else \ + echo "$FEATURES_SHA /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip" > /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \ + sha1sum -c /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \ + mkdir /tmp/feature-repo-$LIBERTY_VERSION; \ + unzip -d /tmp/feature-repo-$LIBERTY_VERSION /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip; \ + cp /tmp/feature-repo-$LIBERTY_VERSION/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json /tmp; \ + export FEATURE_LOCAL_REPO=/tmp/feature-repo-$LIBERTY_VERSION; \ + export FEATURE_VERIFY=skip; \ + fi; \ + grep \"shortName\" /tmp/features-$LIBERTY_VERSION.json | sed -e 's/.* //' -e 's/,//' | xargs featureUtility installFeature --acceptLicense --noCache; \ + rm -rf /output/workarea /output/logs; \ + find /opt/ol/wlp ! -perm -g=rw -print0 | xargs -r -0 chmod g+rw; + +ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:kernel-slim-java8-ibmjava-ubi-micro +FROM $PARENT_IMAGE +ARG VERBOSE=false + +# Copy the runtime +COPY --from=installBundle --chown=1001:0 /opt/ol/wlp /opt/ol/wlp + +COPY --chown=1001:0 server.xml /config/ + +# Create a new SCC layer +RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \ + && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache \ + && find /opt/ol/wlp/output ! -perm -g=rwx -print0 | xargs -0 -r chmod g+rwx diff --git a/releases/latest/full/Dockerfile.ubi10-micro.openjdk11 b/releases/latest/full/Dockerfile.ubi10-micro.openjdk11 new file mode 100644 index 00000000..2ead6939 --- /dev/null +++ b/releases/latest/full/Dockerfile.ubi10-micro.openjdk11 @@ -0,0 +1,48 @@ +ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:kernel-slim-java11-openj9-ubi-micro + +FROM $PARENT_IMAGE AS installBundle + +ARG VERBOSE=false +ARG LIBERTY_VERSION=26.0.0.8 +ARG FEATURES_SHA=534d4f1b2b8cf34903b36f6e3780915f82a35419 + +# If there is a local copy of the repository use that instead +COPY resources/ /tmp/ + +# We need unzip when using a local repo +USER root +RUN microdnf -y install unzip +USER 1001 + +# Install all features +RUN set -eux; \ + if [ ! -f /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip ]; then \ + curl https://repo1.maven.org/maven2/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json > /tmp/features-$LIBERTY_VERSION.json; \ + echo "$FEATURES_SHA /tmp/features-$LIBERTY_VERSION.json" > /tmp/features-$LIBERTY_VERSION.json.sha1; \ + sha1sum -c /tmp/features-$LIBERTY_VERSION.json.sha1; \ + else \ + echo "$FEATURES_SHA /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip" > /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \ + sha1sum -c /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \ + mkdir /tmp/feature-repo-$LIBERTY_VERSION; \ + unzip -d /tmp/feature-repo-$LIBERTY_VERSION /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip; \ + cp /tmp/feature-repo-$LIBERTY_VERSION/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json /tmp; \ + export FEATURE_LOCAL_REPO=/tmp/feature-repo-$LIBERTY_VERSION; \ + export FEATURE_VERIFY=skip; \ + fi; \ + grep \"shortName\" /tmp/features-$LIBERTY_VERSION.json | sed -e 's/.* //' -e 's/,//' | xargs featureUtility installFeature --acceptLicense --noCache; \ + rm -rf /output/workarea /output/logs; \ + find /opt/ol/wlp ! -perm -g=rw -print0 | xargs -r -0 chmod g+rw; + +ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:kernel-slim-java11-openj9-ubi-micro +FROM $PARENT_IMAGE +ARG VERBOSE=false + +# Copy the runtime +COPY --from=installBundle --chown=1001:0 /opt/ol/wlp /opt/ol/wlp + +COPY --chown=1001:0 server.xml /config/ + +# Create a new SCC layer +RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \ + && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache \ + && find /opt/ol/wlp/output ! -perm -g=rwx -print0 | xargs -0 -r chmod g+rwx diff --git a/releases/latest/full/Dockerfile.ubi10-micro.openjdk17 b/releases/latest/full/Dockerfile.ubi10-micro.openjdk17 new file mode 100644 index 00000000..d4b7327e --- /dev/null +++ b/releases/latest/full/Dockerfile.ubi10-micro.openjdk17 @@ -0,0 +1,48 @@ +ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:kernel-slim-java17-openj9-ubi-micro + +FROM $PARENT_IMAGE AS installBundle + +ARG VERBOSE=false +ARG LIBERTY_VERSION=26.0.0.8 +ARG FEATURES_SHA=534d4f1b2b8cf34903b36f6e3780915f82a35419 + +# If there is a local copy of the repository use that instead +COPY resources/ /tmp/ + +# We need unzip when using a local repo +USER root +RUN microdnf -y install unzip +USER 1001 + +# Install all features +RUN set -eux; \ + if [ ! -f /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip ]; then \ + curl https://repo1.maven.org/maven2/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json > /tmp/features-$LIBERTY_VERSION.json; \ + echo "$FEATURES_SHA /tmp/features-$LIBERTY_VERSION.json" > /tmp/features-$LIBERTY_VERSION.json.sha1; \ + sha1sum -c /tmp/features-$LIBERTY_VERSION.json.sha1; \ + else \ + echo "$FEATURES_SHA /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip" > /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \ + sha1sum -c /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \ + mkdir /tmp/feature-repo-$LIBERTY_VERSION; \ + unzip -d /tmp/feature-repo-$LIBERTY_VERSION /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip; \ + cp /tmp/feature-repo-$LIBERTY_VERSION/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json /tmp; \ + export FEATURE_LOCAL_REPO=/tmp/feature-repo-$LIBERTY_VERSION; \ + export FEATURE_VERIFY=skip; \ + fi; \ + grep \"shortName\" /tmp/features-$LIBERTY_VERSION.json | sed -e 's/.* //' -e 's/,//' | xargs featureUtility installFeature --acceptLicense --noCache; \ + rm -rf /output/workarea /output/logs; \ + find /opt/ol/wlp ! -perm -g=rw -print0 | xargs -r -0 chmod g+rw; + +ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:kernel-slim-java17-openj9-ubi-micro +FROM $PARENT_IMAGE +ARG VERBOSE=false + +# Copy the runtime +COPY --from=installBundle --chown=1001:0 /opt/ol/wlp /opt/ol/wlp + +COPY --chown=1001:0 server.xml /config/ + +# Create a new SCC layer +RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \ + && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache \ + && find /opt/ol/wlp/output ! -perm -g=rwx -print0 | xargs -0 -r chmod g+rwx diff --git a/releases/latest/full/Dockerfile.ubi10-micro.openjdk21 b/releases/latest/full/Dockerfile.ubi10-micro.openjdk21 new file mode 100644 index 00000000..6eca90ac --- /dev/null +++ b/releases/latest/full/Dockerfile.ubi10-micro.openjdk21 @@ -0,0 +1,48 @@ +ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:kernel-slim-java21-openj9-ubi-micro + +FROM $PARENT_IMAGE AS installBundle + +ARG VERBOSE=false +ARG LIBERTY_VERSION=26.0.0.8 +ARG FEATURES_SHA=534d4f1b2b8cf34903b36f6e3780915f82a35419 + +# If there is a local copy of the repository use that instead +COPY resources/ /tmp/ + +# We need unzip when using a local repo +USER root +RUN microdnf -y install unzip +USER 1001 + +# Install all features +RUN set -eux; \ + if [ ! -f /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip ]; then \ + curl https://repo1.maven.org/maven2/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json > /tmp/features-$LIBERTY_VERSION.json; \ + echo "$FEATURES_SHA /tmp/features-$LIBERTY_VERSION.json" > /tmp/features-$LIBERTY_VERSION.json.sha1; \ + sha1sum -c /tmp/features-$LIBERTY_VERSION.json.sha1; \ + else \ + echo "$FEATURES_SHA /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip" > /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \ + sha1sum -c /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \ + mkdir /tmp/feature-repo-$LIBERTY_VERSION; \ + unzip -d /tmp/feature-repo-$LIBERTY_VERSION /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip; \ + cp /tmp/feature-repo-$LIBERTY_VERSION/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json /tmp; \ + export FEATURE_LOCAL_REPO=/tmp/feature-repo-$LIBERTY_VERSION; \ + export FEATURE_VERIFY=skip; \ + fi; \ + grep \"shortName\" /tmp/features-$LIBERTY_VERSION.json | sed -e 's/.* //' -e 's/,//' | xargs featureUtility installFeature --acceptLicense --noCache; \ + rm -rf /output/workarea /output/logs; \ + find /opt/ol/wlp ! -perm -g=rw -print0 | xargs -r -0 chmod g+rw; + +ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:kernel-slim-java21-openj9-ubi-micro +FROM $PARENT_IMAGE +ARG VERBOSE=false + +# Copy the runtime +COPY --from=installBundle --chown=1001:0 /opt/ol/wlp /opt/ol/wlp + +COPY --chown=1001:0 server.xml /config/ + +# Create a new SCC layer +RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \ + && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache \ + && find /opt/ol/wlp/output ! -perm -g=rwx -print0 | xargs -0 -r chmod g+rwx diff --git a/releases/latest/full/Dockerfile.ubi10-micro.openjdk25 b/releases/latest/full/Dockerfile.ubi10-micro.openjdk25 new file mode 100644 index 00000000..b16191a6 --- /dev/null +++ b/releases/latest/full/Dockerfile.ubi10-micro.openjdk25 @@ -0,0 +1,48 @@ +ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:kernel-slim-java25-openj9-ubi-micro + +FROM $PARENT_IMAGE AS installBundle + +ARG VERBOSE=false +ARG LIBERTY_VERSION=26.0.0.8 +ARG FEATURES_SHA=534d4f1b2b8cf34903b36f6e3780915f82a35419 + +# If there is a local copy of the repository use that instead +COPY resources/ /tmp/ + +# We need unzip when using a local repo +USER root +RUN microdnf -y install unzip +USER 1001 + +# Install all features +RUN set -eux; \ + if [ ! -f /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip ]; then \ + curl https://repo1.maven.org/maven2/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json > /tmp/features-$LIBERTY_VERSION.json; \ + echo "$FEATURES_SHA /tmp/features-$LIBERTY_VERSION.json" > /tmp/features-$LIBERTY_VERSION.json.sha1; \ + sha1sum -c /tmp/features-$LIBERTY_VERSION.json.sha1; \ + else \ + echo "$FEATURES_SHA /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip" > /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \ + sha1sum -c /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \ + mkdir /tmp/feature-repo-$LIBERTY_VERSION; \ + unzip -d /tmp/feature-repo-$LIBERTY_VERSION /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip; \ + cp /tmp/feature-repo-$LIBERTY_VERSION/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json /tmp; \ + export FEATURE_LOCAL_REPO=/tmp/feature-repo-$LIBERTY_VERSION; \ + export FEATURE_VERIFY=skip; \ + fi; \ + grep \"shortName\" /tmp/features-$LIBERTY_VERSION.json | sed -e 's/.* //' -e 's/,//' | xargs featureUtility installFeature --acceptLicense --noCache; \ + rm -rf /output/workarea /output/logs; \ + find /opt/ol/wlp ! -perm -g=rw -print0 | xargs -r -0 chmod g+rw; + +ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:kernel-slim-java25-openj9-ubi-micro +FROM $PARENT_IMAGE +ARG VERBOSE=false + +# Copy the runtime +COPY --from=installBundle --chown=1001:0 /opt/ol/wlp /opt/ol/wlp + +COPY --chown=1001:0 server.xml /config/ + +# Create a new SCC layer +RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \ + && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache \ + && find /opt/ol/wlp/output ! -perm -g=rwx -print0 | xargs -0 -r chmod g+rwx diff --git a/releases/latest/full/Dockerfile.ubi10-micro.openjdk8 b/releases/latest/full/Dockerfile.ubi10-micro.openjdk8 new file mode 100644 index 00000000..ef1788e2 --- /dev/null +++ b/releases/latest/full/Dockerfile.ubi10-micro.openjdk8 @@ -0,0 +1,48 @@ +ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:kernel-slim-java8-openj9-ubi-micro + +FROM $PARENT_IMAGE AS installBundle + +ARG VERBOSE=false +ARG LIBERTY_VERSION=26.0.0.8 +ARG FEATURES_SHA=534d4f1b2b8cf34903b36f6e3780915f82a35419 + +# If there is a local copy of the repository use that instead +COPY resources/ /tmp/ + +# We need unzip when using a local repo +USER root +RUN microdnf -y install unzip +USER 1001 + +# Install all features +RUN set -eux; \ + if [ ! -f /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip ]; then \ + curl https://repo1.maven.org/maven2/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json > /tmp/features-$LIBERTY_VERSION.json; \ + echo "$FEATURES_SHA /tmp/features-$LIBERTY_VERSION.json" > /tmp/features-$LIBERTY_VERSION.json.sha1; \ + sha1sum -c /tmp/features-$LIBERTY_VERSION.json.sha1; \ + else \ + echo "$FEATURES_SHA /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip" > /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \ + sha1sum -c /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \ + mkdir /tmp/feature-repo-$LIBERTY_VERSION; \ + unzip -d /tmp/feature-repo-$LIBERTY_VERSION /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip; \ + cp /tmp/feature-repo-$LIBERTY_VERSION/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json /tmp; \ + export FEATURE_LOCAL_REPO=/tmp/feature-repo-$LIBERTY_VERSION; \ + export FEATURE_VERIFY=skip; \ + fi; \ + grep \"shortName\" /tmp/features-$LIBERTY_VERSION.json | sed -e 's/.* //' -e 's/,//' | xargs featureUtility installFeature --acceptLicense --noCache; \ + rm -rf /output/workarea /output/logs; \ + find /opt/ol/wlp ! -perm -g=rw -print0 | xargs -r -0 chmod g+rw; + +ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:kernel-slim-java8-openj9-ubi-micro +FROM $PARENT_IMAGE +ARG VERBOSE=false + +# Copy the runtime +COPY --from=installBundle --chown=1001:0 /opt/ol/wlp /opt/ol/wlp + +COPY --chown=1001:0 server.xml /config/ + +# Create a new SCC layer +RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \ + && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache \ + && find /opt/ol/wlp/output ! -perm -g=rwx -print0 | xargs -0 -r chmod g+rwx diff --git a/releases/latest/kernel-slim/Dockerfile.ubi10-micro.ibmjava8 b/releases/latest/kernel-slim/Dockerfile.ubi10-micro.ibmjava8 new file mode 100644 index 00000000..bc42e64d --- /dev/null +++ b/releases/latest/kernel-slim/Dockerfile.ubi10-micro.ibmjava8 @@ -0,0 +1,173 @@ +# This relies on a base image which needs to be built seperately +# curl https://raw.githubusercontent.com/ibmruntimes/ci.docker/main/ibmjava/8/jre/ubi-min/Dockerfile -o java/Dockerfile.ubi10.minimal +# The above file needs editing before it is built: +# This changes to a UBI10 base, and corrects the microdnf command to work on UBI10. +# $> sed -i -e 's/ubi8/ubi10/' -e 's/microdnf install/microdnf -y install/' -e 's/microdnf update/microdnf update -y/' Dockerfile.ubi10-minimal.ibmjava8 +# $> rm ./java/Dockerfile.ubi10.minimal.bak +# Then build and tag as 'ibmjava:10-ubi' +# $> docker build -t ibmjava:10-ubi -f ./java/Dockerfile.ubi10.minimal java + +FROM ibmjava:10-ubi AS builder + +USER root + +ARG LIBERTY_VERSION=26.0.0.8 +ARG LIBERTY_SHA=6394fee2c842008e9e36f3474c23330bfe467f48 +ARG LIBERTY_DOWNLOAD_URL=https://repo1.maven.org/maven2/io/openliberty/openliberty-kernel/$LIBERTY_VERSION/openliberty-kernel-$LIBERTY_VERSION.zip + +ARG VERBOSE=false + +# If there is a local copy of the image use that instead +COPY resources/ /tmp/ + +# Install Open Liberty +RUN microdnf -y install shadow-utils wget unzip openssl \ + && if [ ! -f /tmp/wlp.zip ]; then wget -q $LIBERTY_DOWNLOAD_URL -U UA-Open-Liberty-Docker -O /tmp/wlp.zip; fi \ + && echo "$LIBERTY_SHA /tmp/wlp.zip" > /tmp/wlp.zip.sha1 \ + && sha1sum -c /tmp/wlp.zip.sha1 \ + && chmod -R u+x /usr/bin \ + && unzip -q /tmp/wlp.zip -d /opt/ol \ + && mkdir -p /licenses \ + && cp /opt/ol/wlp/LICENSE /licenses/ \ +# && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ + && chown -R 1001:0 /opt/ol/wlp \ + && chmod -R g+rw /opt/ol/wlp + +# Install dumb-init +RUN set -eux; \ + ARCH="$(uname -m)"; \ + case "${ARCH}" in \ + aarch64|arm64) \ + DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_aarch64'; \ + DUMB_INIT_SHA256=b7d648f97154a99c539b63c55979cd29f005f88430fb383007fe3458340b795e; \ + ;; \ + amd64|x86_64) \ + DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_x86_64'; \ + DUMB_INIT_SHA256=e874b55f3279ca41415d290c512a7ba9d08f98041b28ae7c2acb19a545f1c4df; \ + ;; \ + ppc64el|ppc64le) \ + DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_ppc64le'; \ + DUMB_INIT_SHA256=3d15e80e29f0f4fa1fc686b00613a2220bc37e83a35283d4b4cca1fbd0a5609f; \ + ;; \ + s390x) \ + DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_s390x'; \ + DUMB_INIT_SHA256=47e4601b152fc6dcb1891e66c30ecc62a2939fd7ffd1515a7c30f281cfec53b7; \ + ;;\ + *) \ + echo "Unsupported arch: ${ARCH}"; \ + exit 1; \ + ;; \ + esac; \ + curl -LfsSo /usr/bin/dumb-init ${DUMB_INIT_URL}; \ + echo "${DUMB_INIT_SHA256} */usr/bin/dumb-init" | sha256sum -c -; \ + chmod +x /usr/bin/dumb-init; + +FROM ibmjava:8-ubi10-micro + +USER root + +ARG LIBERTY_VERSION=26.0.0.8 +ARG LIBERTY_BUILD_LABEL=cl260820260725-1102 + +ARG OPENJ9_SCC=true +ARG VERBOSE=false + +LABEL org.opencontainers.image.authors="Leo Christy Jesuraj, Iain Lewis, Melissa Lee, Kirby Chin" \ + org.opencontainers.image.vendor="Open Liberty" \ + org.opencontainers.image.url="https://openliberty.io/" \ + org.opencontainers.image.source="https://github.com/OpenLiberty/ci.docker" \ + org.opencontainers.image.version="$LIBERTY_VERSION" \ + org.opencontainers.image.revision="$LIBERTY_BUILD_LABEL" \ + liberty.version="$LIBERTY_VERSION" \ + io.openliberty.version="$LIBERTY_VERSION" \ + vendor="Open Liberty" \ + name="Open Liberty" \ + version="$LIBERTY_VERSION" \ + summary="Image for Open Liberty with IBM's Java and UBI 10 micro" \ + description="This image contains the Open Liberty runtime with IBM's Java and Red Hat UBI 10 micro as the base OS. For more information on this image please see https://github.com/OpenLiberty/ci.docker#building-an-application-image" + +COPY NOTICES /opt/ol/NOTICES +COPY helpers /opt/ol/helpers +COPY fixes/ /opt/ol/fixes/ + +# Add default user 1001 and create wlp with right user/permissions before copying +RUN echo "1001:x:1001:0::/home/1001:/sbin/nologin" >> /etc/passwd \ + && mkdir -p /home/1001 \ + && chown 1001:0 /home/1001 \ + && mkdir -p /opt/ol/wlp \ + && chown -R 1001:0 /opt/ol/wlp \ + && chmod -R g+rw /opt/ol/wlp + +COPY --from=builder /usr/bin/dumb-init /usr/bin/dumb-init +COPY --from=builder /usr/bin/awk /usr/bin/awk +COPY --from=builder /usr/bin/wget /usr/bin/wget + +COPY --from=builder /usr/lib64/libpsl.so* /usr/lib64/ +COPY --from=builder /usr/lib64/libmpfr.so* /usr/lib64/ +COPY --from=builder /usr/lib64/libreadline.so* /usr/lib64/ + +# Copy the runtime and licenses +COPY --from=builder --chown=1001:0 /opt/ol/wlp /opt/ol/wlp +COPY --from=builder /licenses /licenses + +# Set Path Shortcuts +ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \ + LOG_DIR=/liberty/logs \ + WLP_OUTPUT_DIR=/opt/ol/wlp/output \ + WLP_SKIP_MAXPERMSIZE=true \ + OPENJ9_SCC=$OPENJ9_SCC + +# Configure Open Liberty +RUN /opt/ol/wlp/bin/server create \ + && rm -rf $WLP_OUTPUT_DIR/.classCache /output/workarea \ + && rm -rf /opt/ol/wlp/usr/servers/defaultServer/server.env + +# Create symlinks && set permissions for non-root user +RUN mkdir /logs \ + && chown -R 1001:0 /logs \ + && chmod -R g+rw /logs \ + && mkdir -p /opt/ol/wlp/usr/shared/resources/lib.index.cache \ + && ln -s /opt/ol/wlp/usr/shared/resources/lib.index.cache /lib.index.cache \ + && mkdir -p $WLP_OUTPUT_DIR/defaultServer \ + && ln -s $WLP_OUTPUT_DIR/defaultServer /output \ + && ln -s /opt/ol/wlp/usr/servers/defaultServer /config \ + && mkdir -p /config/configDropins/defaults \ + && mkdir -p /config/configDropins/overrides \ + && ln -s /opt/ol/wlp /liberty \ + && ln -s /opt/ol/fixes /fixes \ + && echo "" > /config/configDropins/defaults/open-default-port.xml \ + && chown -R 1001:0 /config \ + && chmod -R g+rw /config \ + && chown -R 1001:0 /opt/ol/wlp/usr \ + && chmod -R g+rw /opt/ol/wlp/usr \ + && chown -R 1001:0 /opt/ol/wlp/output \ + && chmod -R g+rw /opt/ol/wlp/output \ + && chown -R 1001:0 /opt/ol/helpers \ + && chmod -R ug+rwx /opt/ol/helpers \ + && chown -R 1001:0 /opt/ol/fixes \ + && chmod -R g+rwx /opt/ol/fixes \ + && mkdir /etc/wlp \ + && chown -R 1001:0 /etc/wlp \ + && chmod -R g+rw /etc/wlp \ + && ln -s /logs /liberty/logs \ + && mkdir /serviceability \ + && chown -R 1001:0 /serviceability \ + && chmod -R g+rw /serviceability + +# Create a new SCC layer +RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \ + && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache /output/workarea \ + && chown -R 1001:0 /opt/ol/wlp/output \ + && chmod -R g+rwx /opt/ol/wlp/output + +#These settings are needed so that we can run as a different user than 1001 after server warmup +ENV RANDFILE=/tmp/.rnd \ + IBM_JAVA_OPTIONS="-Xshareclasses:name=liberty,readonly,nonfatal,cacheDir=/output/.classCache/ -Dosgi.checkConfiguration=false ${IBM_JAVA_OPTIONS}" + +USER 1001 + +EXPOSE 9080 9443 + +ENTRYPOINT ["/opt/ol/helpers/runtime/docker-server.sh"] +CMD ["/opt/ol/wlp/bin/server", "run", "defaultServer"] + diff --git a/releases/latest/kernel-slim/Dockerfile.ubi10-micro.openjdk11 b/releases/latest/kernel-slim/Dockerfile.ubi10-micro.openjdk11 new file mode 100755 index 00000000..671663ac --- /dev/null +++ b/releases/latest/kernel-slim/Dockerfile.ubi10-micro.openjdk11 @@ -0,0 +1,164 @@ +FROM registry.access.redhat.com/ubi10/ubi-minimal:latest AS builder + +USER root + +ARG LIBERTY_VERSION=26.0.0.8 +ARG LIBERTY_SHA=6394fee2c842008e9e36f3474c23330bfe467f48 +ARG LIBERTY_DOWNLOAD_URL=https://repo1.maven.org/maven2/io/openliberty/openliberty-kernel/$LIBERTY_VERSION/openliberty-kernel-$LIBERTY_VERSION.zip + +ARG VERBOSE=false + +# If there is a local copy of the image use that instead +COPY resources/ /tmp/ + +# Install Open Liberty +RUN microdnf -y install shadow-utils wget unzip openssl \ + && if [ ! -f /tmp/wlp.zip ]; then wget -q $LIBERTY_DOWNLOAD_URL -U UA-Open-Liberty-Docker -O /tmp/wlp.zip; fi \ + && echo "$LIBERTY_SHA /tmp/wlp.zip" > /tmp/wlp.zip.sha1 \ + && sha1sum -c /tmp/wlp.zip.sha1 \ + && chmod -R u+x /usr/bin \ + && unzip -q /tmp/wlp.zip -d /opt/ol \ + && mkdir -p /licenses \ + && cp /opt/ol/wlp/LICENSE /licenses/ \ + && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ + && chown -R 1001:0 /opt/ol/wlp \ + && chmod -R g+rw /opt/ol/wlp + +# Install dumb-init +RUN set -eux; \ + ARCH="$(uname -m)"; \ + case "${ARCH}" in \ + aarch64|arm64) \ + DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_aarch64'; \ + DUMB_INIT_SHA256=b7d648f97154a99c539b63c55979cd29f005f88430fb383007fe3458340b795e; \ + ;; \ + amd64|x86_64) \ + DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_x86_64'; \ + DUMB_INIT_SHA256=e874b55f3279ca41415d290c512a7ba9d08f98041b28ae7c2acb19a545f1c4df; \ + ;; \ + ppc64el|ppc64le) \ + DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_ppc64le'; \ + DUMB_INIT_SHA256=3d15e80e29f0f4fa1fc686b00613a2220bc37e83a35283d4b4cca1fbd0a5609f; \ + ;; \ + s390x) \ + DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_s390x'; \ + DUMB_INIT_SHA256=47e4601b152fc6dcb1891e66c30ecc62a2939fd7ffd1515a7c30f281cfec53b7; \ + ;;\ + *) \ + echo "Unsupported arch: ${ARCH}"; \ + exit 1; \ + ;; \ + esac; \ + curl -LfsSo /usr/bin/dumb-init ${DUMB_INIT_URL}; \ + echo "${DUMB_INIT_SHA256} */usr/bin/dumb-init" | sha256sum -c -; \ + chmod +x /usr/bin/dumb-init; + +FROM icr.io/appcafe/ibm-semeru-runtimes:open-11-jre-ubi10-micro + +USER root + +ARG LIBERTY_VERSION=26.0.0.8 +ARG LIBERTY_BUILD_LABEL=cl260820260725-1102 + +ARG OPENJ9_SCC=true +ARG VERBOSE=false + +LABEL org.opencontainers.image.authors="Leo Christy Jesuraj, Iain Lewis, Melissa Lee, Kirby Chin" \ + org.opencontainers.image.vendor="Open Liberty" \ + org.opencontainers.image.url="https://openliberty.io/" \ + org.opencontainers.image.source="https://github.com/OpenLiberty/ci.docker" \ + org.opencontainers.image.version="$LIBERTY_VERSION" \ + org.opencontainers.image.revision="$LIBERTY_BUILD_LABEL" \ + liberty.version="$LIBERTY_VERSION" \ + io.openliberty.version="$LIBERTY_VERSION" \ + vendor="Open Liberty" \ + name="Open Liberty" \ + version="$LIBERTY_VERSION" \ + summary="Image for Open Liberty with IBM Semeru Runtime Open Edition OpenJDK 11 with OpenJ9 and UBI 10 micro" \ + description="This image contains the Open Liberty runtime with IBM Semeru Runtime Open Edition OpenJDK 11 with OpenJ9 and Red Hat UBI 10 micro as the base OS. For more information on this image please see https://github.com/OpenLiberty/ci.docker#building-an-application-image" + +COPY NOTICES /opt/ol/NOTICES +COPY helpers /opt/ol/helpers +COPY fixes/ /opt/ol/fixes/ + +# Add default user 1001 and create wlp with right user/permissions before copying +RUN echo "1001:x:1001:0::/home/1001:/sbin/nologin" >> /etc/passwd \ + && mkdir -p /home/1001 \ + && chown 1001:0 /home/1001 \ + && mkdir -p /opt/ol/wlp \ + && chown -R 1001:0 /opt/ol/wlp \ + && chmod -R g+rw /opt/ol/wlp + +COPY --from=builder /usr/bin/dumb-init /usr/bin/dumb-init +COPY --from=builder /usr/bin/awk /usr/bin/awk +COPY --from=builder /usr/bin/wget /usr/bin/wget + +COPY --from=builder /usr/lib64/libpsl.so* /usr/lib64/ +COPY --from=builder /usr/lib64/libmpfr.so* /usr/lib64/ + +# Copy the runtime and licenses +COPY --from=builder --chown=1001:0 /opt/ol/wlp /opt/ol/wlp +COPY --from=builder /licenses /licenses + +# Set Path Shortcuts +ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \ + LOG_DIR=/liberty/logs \ + WLP_OUTPUT_DIR=/opt/ol/wlp/output \ + WLP_SKIP_MAXPERMSIZE=true \ + OPENJ9_SCC=$OPENJ9_SCC + +# Configure Open Liberty +RUN /opt/ol/wlp/bin/server create \ + && rm -rf $WLP_OUTPUT_DIR/.classCache /output/workarea \ + && rm -rf /opt/ol/wlp/usr/servers/defaultServer/server.env + +# Create symlinks && set permissions for non-root user +RUN mkdir /logs \ + && chown -R 1001:0 /logs \ + && chmod -R g+rw /logs \ + && mkdir -p /opt/ol/wlp/usr/shared/resources/lib.index.cache \ + && ln -s /opt/ol/wlp/usr/shared/resources/lib.index.cache /lib.index.cache \ + && mkdir -p $WLP_OUTPUT_DIR/defaultServer \ + && ln -s $WLP_OUTPUT_DIR/defaultServer /output \ + && ln -s /opt/ol/wlp/usr/servers/defaultServer /config \ + && mkdir -p /config/configDropins/defaults \ + && mkdir -p /config/configDropins/overrides \ + && ln -s /opt/ol/wlp /liberty \ + && ln -s /opt/ol/fixes /fixes \ + && echo "" > /config/configDropins/defaults/open-default-port.xml \ + && chown -R 1001:0 /config \ + && chmod -R g+rw /config \ + && chown -R 1001:0 /opt/ol/wlp/usr \ + && chmod -R g+rw /opt/ol/wlp/usr \ + && chown -R 1001:0 /opt/ol/wlp/output \ + && chmod -R g+rw /opt/ol/wlp/output \ + && chown -R 1001:0 /opt/ol/helpers \ + && chmod -R ug+rwx /opt/ol/helpers \ + && chown -R 1001:0 /opt/ol/fixes \ + && chmod -R g+rwx /opt/ol/fixes \ + && mkdir /etc/wlp \ + && chown -R 1001:0 /etc/wlp \ + && chmod -R g+rw /etc/wlp \ + && if [ -e /etc/instanton.ld.so.cache ]; then chmod g+w /etc/ld.so.cache; fi \ + && ln -s /logs /liberty/logs \ + && mkdir /serviceability \ + && chown -R 1001:0 /serviceability \ + && chmod -R g+rw /serviceability + +# Create a new SCC layer +RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \ + && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache /output/workarea \ + && chown -R 1001:0 /opt/ol/wlp/output \ + && chmod -R g+rwx /opt/ol/wlp/output + +#These settings are needed so that we can run as a different user than 1001 after server warmup +ENV RANDFILE=/tmp/.rnd \ + OPENJ9_JAVA_OPTIONS="-XX:+IgnoreUnrecognizedVMOptions -XX:+IdleTuningGcOnIdle -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,readonly,nonFatal -Dosgi.checkConfiguration=false" + +USER 1001 + +EXPOSE 9080 9443 + +ENTRYPOINT ["/opt/ol/helpers/runtime/docker-server.sh"] +CMD ["/opt/ol/wlp/bin/server", "run", "defaultServer"] + diff --git a/releases/latest/kernel-slim/Dockerfile.ubi10-micro.openjdk17 b/releases/latest/kernel-slim/Dockerfile.ubi10-micro.openjdk17 new file mode 100755 index 00000000..c15410ac --- /dev/null +++ b/releases/latest/kernel-slim/Dockerfile.ubi10-micro.openjdk17 @@ -0,0 +1,164 @@ +FROM registry.access.redhat.com/ubi10/ubi-minimal:latest AS builder + +USER root + +ARG LIBERTY_VERSION=26.0.0.8 +ARG LIBERTY_SHA=6394fee2c842008e9e36f3474c23330bfe467f48 +ARG LIBERTY_DOWNLOAD_URL=https://repo1.maven.org/maven2/io/openliberty/openliberty-kernel/$LIBERTY_VERSION/openliberty-kernel-$LIBERTY_VERSION.zip + +ARG VERBOSE=false + +# If there is a local copy of the image use that instead +COPY resources/ /tmp/ + +# Install Open Liberty +RUN microdnf -y install shadow-utils wget unzip openssl \ + && if [ ! -f /tmp/wlp.zip ]; then wget -q $LIBERTY_DOWNLOAD_URL -U UA-Open-Liberty-Docker -O /tmp/wlp.zip; fi \ + && echo "$LIBERTY_SHA /tmp/wlp.zip" > /tmp/wlp.zip.sha1 \ + && sha1sum -c /tmp/wlp.zip.sha1 \ + && chmod -R u+x /usr/bin \ + && unzip -q /tmp/wlp.zip -d /opt/ol \ + && mkdir -p /licenses \ + && cp /opt/ol/wlp/LICENSE /licenses/ \ + && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ + && chown -R 1001:0 /opt/ol/wlp \ + && chmod -R g+rw /opt/ol/wlp + +# Install dumb-init +RUN set -eux; \ + ARCH="$(uname -m)"; \ + case "${ARCH}" in \ + aarch64|arm64) \ + DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_aarch64'; \ + DUMB_INIT_SHA256=b7d648f97154a99c539b63c55979cd29f005f88430fb383007fe3458340b795e; \ + ;; \ + amd64|x86_64) \ + DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_x86_64'; \ + DUMB_INIT_SHA256=e874b55f3279ca41415d290c512a7ba9d08f98041b28ae7c2acb19a545f1c4df; \ + ;; \ + ppc64el|ppc64le) \ + DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_ppc64le'; \ + DUMB_INIT_SHA256=3d15e80e29f0f4fa1fc686b00613a2220bc37e83a35283d4b4cca1fbd0a5609f; \ + ;; \ + s390x) \ + DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_s390x'; \ + DUMB_INIT_SHA256=47e4601b152fc6dcb1891e66c30ecc62a2939fd7ffd1515a7c30f281cfec53b7; \ + ;;\ + *) \ + echo "Unsupported arch: ${ARCH}"; \ + exit 1; \ + ;; \ + esac; \ + curl -LfsSo /usr/bin/dumb-init ${DUMB_INIT_URL}; \ + echo "${DUMB_INIT_SHA256} */usr/bin/dumb-init" | sha256sum -c -; \ + chmod +x /usr/bin/dumb-init; + +FROM icr.io/appcafe/ibm-semeru-runtimes:open-17-jre-ubi10-micro + +USER root + +ARG LIBERTY_VERSION=26.0.0.8 +ARG LIBERTY_BUILD_LABEL=cl260820260725-1102 + +ARG OPENJ9_SCC=true +ARG VERBOSE=false + +LABEL org.opencontainers.image.authors="Leo Christy Jesuraj, Iain Lewis, Melissa Lee, Kirby Chin" \ + org.opencontainers.image.vendor="Open Liberty" \ + org.opencontainers.image.url="https://openliberty.io/" \ + org.opencontainers.image.source="https://github.com/OpenLiberty/ci.docker" \ + org.opencontainers.image.version="$LIBERTY_VERSION" \ + org.opencontainers.image.revision="$LIBERTY_BUILD_LABEL" \ + liberty.version="$LIBERTY_VERSION" \ + io.openliberty.version="$LIBERTY_VERSION" \ + vendor="Open Liberty" \ + name="Open Liberty" \ + version="$LIBERTY_VERSION" \ + summary="Image for Open Liberty with IBM Semeru Runtime Open Edition OpenJDK 17 with OpenJ9 and UBI 10 micro" \ + description="This image contains the Open Liberty runtime with IBM Semeru Runtime Open Edition OpenJDK 17 with OpenJ9 and Red Hat UBI 10 micro as the base OS. For more information on this image please see https://github.com/OpenLiberty/ci.docker#building-an-application-image" + +COPY NOTICES /opt/ol/NOTICES +COPY helpers /opt/ol/helpers +COPY fixes/ /opt/ol/fixes/ + +# Add default user 1001 and create wlp with right user/permissions before copying +RUN echo "1001:x:1001:0::/home/1001:/sbin/nologin" >> /etc/passwd \ + && mkdir -p /home/1001 \ + && chown 1001:0 /home/1001 \ + && mkdir -p /opt/ol/wlp \ + && chown -R 1001:0 /opt/ol/wlp \ + && chmod -R g+rw /opt/ol/wlp + +COPY --from=builder /usr/bin/dumb-init /usr/bin/dumb-init +COPY --from=builder /usr/bin/awk /usr/bin/awk +COPY --from=builder /usr/bin/wget /usr/bin/wget + +COPY --from=builder /usr/lib64/libpsl.so* /usr/lib64/ +COPY --from=builder /usr/lib64/libmpfr.so* /usr/lib64/ + +# Copy the runtime and licenses +COPY --from=builder --chown=1001:0 /opt/ol/wlp /opt/ol/wlp +COPY --from=builder /licenses /licenses + +# Set Path Shortcuts +ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \ + LOG_DIR=/liberty/logs \ + WLP_OUTPUT_DIR=/opt/ol/wlp/output \ + WLP_SKIP_MAXPERMSIZE=true \ + OPENJ9_SCC=$OPENJ9_SCC + +# Configure Open Liberty +RUN /opt/ol/wlp/bin/server create \ + && rm -rf $WLP_OUTPUT_DIR/.classCache /output/workarea \ + && rm -rf /opt/ol/wlp/usr/servers/defaultServer/server.env + +# Create symlinks && set permissions for non-root user +RUN mkdir /logs \ + && chown -R 1001:0 /logs \ + && chmod -R g+rw /logs \ + && mkdir -p /opt/ol/wlp/usr/shared/resources/lib.index.cache \ + && ln -s /opt/ol/wlp/usr/shared/resources/lib.index.cache /lib.index.cache \ + && mkdir -p $WLP_OUTPUT_DIR/defaultServer \ + && ln -s $WLP_OUTPUT_DIR/defaultServer /output \ + && ln -s /opt/ol/wlp/usr/servers/defaultServer /config \ + && mkdir -p /config/configDropins/defaults \ + && mkdir -p /config/configDropins/overrides \ + && ln -s /opt/ol/wlp /liberty \ + && ln -s /opt/ol/fixes /fixes \ + && echo "" > /config/configDropins/defaults/open-default-port.xml \ + && chown -R 1001:0 /config \ + && chmod -R g+rw /config \ + && chown -R 1001:0 /opt/ol/wlp/usr \ + && chmod -R g+rw /opt/ol/wlp/usr \ + && chown -R 1001:0 /opt/ol/wlp/output \ + && chmod -R g+rw /opt/ol/wlp/output \ + && chown -R 1001:0 /opt/ol/helpers \ + && chmod -R ug+rwx /opt/ol/helpers \ + && chown -R 1001:0 /opt/ol/fixes \ + && chmod -R g+rwx /opt/ol/fixes \ + && mkdir /etc/wlp \ + && chown -R 1001:0 /etc/wlp \ + && chmod -R g+rw /etc/wlp \ + && if [ -e /etc/instanton.ld.so.cache ]; then chmod g+w /etc/ld.so.cache; fi \ + && ln -s /logs /liberty/logs \ + && mkdir /serviceability \ + && chown -R 1001:0 /serviceability \ + && chmod -R g+rw /serviceability + +# Create a new SCC layer +RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \ + && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache /output/workarea \ + && chown -R 1001:0 /opt/ol/wlp/output \ + && chmod -R g+rwx /opt/ol/wlp/output + +#These settings are needed so that we can run as a different user than 1001 after server warmup +ENV RANDFILE=/tmp/.rnd \ + OPENJ9_JAVA_OPTIONS="-XX:+IgnoreUnrecognizedVMOptions -XX:+IdleTuningGcOnIdle -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,readonly,nonFatal -Dosgi.checkConfiguration=false" + +USER 1001 + +EXPOSE 9080 9443 + +ENTRYPOINT ["/opt/ol/helpers/runtime/docker-server.sh"] +CMD ["/opt/ol/wlp/bin/server", "run", "defaultServer"] + diff --git a/releases/latest/kernel-slim/Dockerfile.ubi10-micro.openjdk21 b/releases/latest/kernel-slim/Dockerfile.ubi10-micro.openjdk21 new file mode 100755 index 00000000..0b69f6f2 --- /dev/null +++ b/releases/latest/kernel-slim/Dockerfile.ubi10-micro.openjdk21 @@ -0,0 +1,164 @@ +FROM registry.access.redhat.com/ubi10/ubi-minimal:latest AS builder + +USER root + +ARG LIBERTY_VERSION=26.0.0.8 +ARG LIBERTY_SHA=6394fee2c842008e9e36f3474c23330bfe467f48 +ARG LIBERTY_DOWNLOAD_URL=https://repo1.maven.org/maven2/io/openliberty/openliberty-kernel/$LIBERTY_VERSION/openliberty-kernel-$LIBERTY_VERSION.zip + +ARG VERBOSE=false + +# If there is a local copy of the image use that instead +COPY resources/ /tmp/ + +# Install Open Liberty +RUN microdnf -y install shadow-utils wget unzip openssl \ + && if [ ! -f /tmp/wlp.zip ]; then wget -q $LIBERTY_DOWNLOAD_URL -U UA-Open-Liberty-Docker -O /tmp/wlp.zip; fi \ + && echo "$LIBERTY_SHA /tmp/wlp.zip" > /tmp/wlp.zip.sha1 \ + && sha1sum -c /tmp/wlp.zip.sha1 \ + && chmod -R u+x /usr/bin \ + && unzip -q /tmp/wlp.zip -d /opt/ol \ + && mkdir -p /licenses \ + && cp /opt/ol/wlp/LICENSE /licenses/ \ + && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ + && chown -R 1001:0 /opt/ol/wlp \ + && chmod -R g+rw /opt/ol/wlp + +# Install dumb-init +RUN set -eux; \ + ARCH="$(uname -m)"; \ + case "${ARCH}" in \ + aarch64|arm64) \ + DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_aarch64'; \ + DUMB_INIT_SHA256=b7d648f97154a99c539b63c55979cd29f005f88430fb383007fe3458340b795e; \ + ;; \ + amd64|x86_64) \ + DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_x86_64'; \ + DUMB_INIT_SHA256=e874b55f3279ca41415d290c512a7ba9d08f98041b28ae7c2acb19a545f1c4df; \ + ;; \ + ppc64el|ppc64le) \ + DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_ppc64le'; \ + DUMB_INIT_SHA256=3d15e80e29f0f4fa1fc686b00613a2220bc37e83a35283d4b4cca1fbd0a5609f; \ + ;; \ + s390x) \ + DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_s390x'; \ + DUMB_INIT_SHA256=47e4601b152fc6dcb1891e66c30ecc62a2939fd7ffd1515a7c30f281cfec53b7; \ + ;;\ + *) \ + echo "Unsupported arch: ${ARCH}"; \ + exit 1; \ + ;; \ + esac; \ + curl -LfsSo /usr/bin/dumb-init ${DUMB_INIT_URL}; \ + echo "${DUMB_INIT_SHA256} */usr/bin/dumb-init" | sha256sum -c -; \ + chmod +x /usr/bin/dumb-init; + +FROM icr.io/appcafe/ibm-semeru-runtimes:open-21-jre-ubi10-micro + +USER root + +ARG LIBERTY_VERSION=26.0.0.8 +ARG LIBERTY_BUILD_LABEL=cl260820260725-1102 + +ARG OPENJ9_SCC=true +ARG VERBOSE=false + +LABEL org.opencontainers.image.authors="Leo Christy Jesuraj, Iain Lewis, Melissa Lee, Kirby Chin" \ + org.opencontainers.image.vendor="Open Liberty" \ + org.opencontainers.image.url="https://openliberty.io/" \ + org.opencontainers.image.source="https://github.com/OpenLiberty/ci.docker" \ + org.opencontainers.image.version="$LIBERTY_VERSION" \ + org.opencontainers.image.revision="$LIBERTY_BUILD_LABEL" \ + liberty.version="$LIBERTY_VERSION" \ + io.openliberty.version="$LIBERTY_VERSION" \ + vendor="Open Liberty" \ + name="Open Liberty" \ + version="$LIBERTY_VERSION" \ + summary="Image for Open Liberty with IBM Semeru Runtime Open Edition OpenJDK 21 with OpenJ9 and UBI 10 micro" \ + description="This image contains the Open Liberty runtime with IBM Semeru Runtime Open Edition OpenJDK 21 with OpenJ9 and Red Hat UBI 10 micro as the base OS. For more information on this image please see https://github.com/OpenLiberty/ci.docker#building-an-application-image" + +COPY NOTICES /opt/ol/NOTICES +COPY helpers /opt/ol/helpers +COPY fixes/ /opt/ol/fixes/ + +# Add default user 1001 and create wlp with right user/permissions before copying +RUN echo "1001:x:1001:0::/home/1001:/sbin/nologin" >> /etc/passwd \ + && mkdir -p /home/1001 \ + && chown 1001:0 /home/1001 \ + && mkdir -p /opt/ol/wlp \ + && chown -R 1001:0 /opt/ol/wlp \ + && chmod -R g+rw /opt/ol/wlp + +COPY --from=builder /usr/bin/dumb-init /usr/bin/dumb-init +COPY --from=builder /usr/bin/awk /usr/bin/awk +COPY --from=builder /usr/bin/wget /usr/bin/wget + +COPY --from=builder /usr/lib64/libpsl.so* /usr/lib64/ +COPY --from=builder /usr/lib64/libmpfr.so* /usr/lib64/ + +# Copy the runtime and licenses +COPY --from=builder --chown=1001:0 /opt/ol/wlp /opt/ol/wlp +COPY --from=builder /licenses /licenses + +# Set Path Shortcuts +ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \ + LOG_DIR=/liberty/logs \ + WLP_OUTPUT_DIR=/opt/ol/wlp/output \ + WLP_SKIP_MAXPERMSIZE=true \ + OPENJ9_SCC=$OPENJ9_SCC + +# Configure Open Liberty +RUN /opt/ol/wlp/bin/server create \ + && rm -rf $WLP_OUTPUT_DIR/.classCache /output/workarea \ + && rm -rf /opt/ol/wlp/usr/servers/defaultServer/server.env + +# Create symlinks && set permissions for non-root user +RUN mkdir /logs \ + && chown -R 1001:0 /logs \ + && chmod -R g+rw /logs \ + && mkdir -p /opt/ol/wlp/usr/shared/resources/lib.index.cache \ + && ln -s /opt/ol/wlp/usr/shared/resources/lib.index.cache /lib.index.cache \ + && mkdir -p $WLP_OUTPUT_DIR/defaultServer \ + && ln -s $WLP_OUTPUT_DIR/defaultServer /output \ + && ln -s /opt/ol/wlp/usr/servers/defaultServer /config \ + && mkdir -p /config/configDropins/defaults \ + && mkdir -p /config/configDropins/overrides \ + && ln -s /opt/ol/wlp /liberty \ + && ln -s /opt/ol/fixes /fixes \ + && echo "" > /config/configDropins/defaults/open-default-port.xml \ + && chown -R 1001:0 /config \ + && chmod -R g+rw /config \ + && chown -R 1001:0 /opt/ol/wlp/usr \ + && chmod -R g+rw /opt/ol/wlp/usr \ + && chown -R 1001:0 /opt/ol/wlp/output \ + && chmod -R g+rw /opt/ol/wlp/output \ + && chown -R 1001:0 /opt/ol/helpers \ + && chmod -R ug+rwx /opt/ol/helpers \ + && chown -R 1001:0 /opt/ol/fixes \ + && chmod -R g+rwx /opt/ol/fixes \ + && mkdir /etc/wlp \ + && chown -R 1001:0 /etc/wlp \ + && chmod -R g+rw /etc/wlp \ + && if [ -e /etc/instanton.ld.so.cache ]; then chmod g+w /etc/ld.so.cache; fi \ + && ln -s /logs /liberty/logs \ + && mkdir /serviceability \ + && chown -R 1001:0 /serviceability \ + && chmod -R g+rw /serviceability + +# Create a new SCC layer +RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \ + && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache /output/workarea \ + && chown -R 1001:0 /opt/ol/wlp/output \ + && chmod -R g+rwx /opt/ol/wlp/output + +#These settings are needed so that we can run as a different user than 1001 after server warmup +ENV RANDFILE=/tmp/.rnd \ + OPENJ9_JAVA_OPTIONS="-XX:+IgnoreUnrecognizedVMOptions -XX:+IdleTuningGcOnIdle -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,readonly,nonFatal -Dosgi.checkConfiguration=false" + +USER 1001 + +EXPOSE 9080 9443 + +ENTRYPOINT ["/opt/ol/helpers/runtime/docker-server.sh"] +CMD ["/opt/ol/wlp/bin/server", "run", "defaultServer"] + diff --git a/releases/latest/kernel-slim/Dockerfile.ubi10-micro.openjdk25 b/releases/latest/kernel-slim/Dockerfile.ubi10-micro.openjdk25 new file mode 100755 index 00000000..71bc7950 --- /dev/null +++ b/releases/latest/kernel-slim/Dockerfile.ubi10-micro.openjdk25 @@ -0,0 +1,164 @@ +FROM registry.access.redhat.com/ubi10/ubi-minimal:latest AS builder + +USER root + +ARG LIBERTY_VERSION=26.0.0.8 +ARG LIBERTY_SHA=6394fee2c842008e9e36f3474c23330bfe467f48 +ARG LIBERTY_DOWNLOAD_URL=https://repo1.maven.org/maven2/io/openliberty/openliberty-kernel/$LIBERTY_VERSION/openliberty-kernel-$LIBERTY_VERSION.zip + +ARG VERBOSE=false + +# If there is a local copy of the image use that instead +COPY resources/ /tmp/ + +# Install Open Liberty +RUN microdnf -y install shadow-utils wget unzip openssl \ + && if [ ! -f /tmp/wlp.zip ]; then wget -q $LIBERTY_DOWNLOAD_URL -U UA-Open-Liberty-Docker -O /tmp/wlp.zip; fi \ + && echo "$LIBERTY_SHA /tmp/wlp.zip" > /tmp/wlp.zip.sha1 \ + && sha1sum -c /tmp/wlp.zip.sha1 \ + && chmod -R u+x /usr/bin \ + && unzip -q /tmp/wlp.zip -d /opt/ol \ + && mkdir -p /licenses \ + && cp /opt/ol/wlp/LICENSE /licenses/ \ + && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ + && chown -R 1001:0 /opt/ol/wlp \ + && chmod -R g+rw /opt/ol/wlp + +# Install dumb-init +RUN set -eux; \ + ARCH="$(uname -m)"; \ + case "${ARCH}" in \ + aarch64|arm64) \ + DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_aarch64'; \ + DUMB_INIT_SHA256=b7d648f97154a99c539b63c55979cd29f005f88430fb383007fe3458340b795e; \ + ;; \ + amd64|x86_64) \ + DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_x86_64'; \ + DUMB_INIT_SHA256=e874b55f3279ca41415d290c512a7ba9d08f98041b28ae7c2acb19a545f1c4df; \ + ;; \ + ppc64el|ppc64le) \ + DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_ppc64le'; \ + DUMB_INIT_SHA256=3d15e80e29f0f4fa1fc686b00613a2220bc37e83a35283d4b4cca1fbd0a5609f; \ + ;; \ + s390x) \ + DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_s390x'; \ + DUMB_INIT_SHA256=47e4601b152fc6dcb1891e66c30ecc62a2939fd7ffd1515a7c30f281cfec53b7; \ + ;;\ + *) \ + echo "Unsupported arch: ${ARCH}"; \ + exit 1; \ + ;; \ + esac; \ + curl -LfsSo /usr/bin/dumb-init ${DUMB_INIT_URL}; \ + echo "${DUMB_INIT_SHA256} */usr/bin/dumb-init" | sha256sum -c -; \ + chmod +x /usr/bin/dumb-init; + +FROM icr.io/appcafe/ibm-semeru-runtimes:open-25-jre-ubi10-micro + +USER root + +ARG LIBERTY_VERSION=26.0.0.8 +ARG LIBERTY_BUILD_LABEL=cl260820260725-1102 + +ARG OPENJ9_SCC=true +ARG VERBOSE=false + +LABEL org.opencontainers.image.authors="Leo Christy Jesuraj, Iain Lewis, Melissa Lee, Kirby Chin" \ + org.opencontainers.image.vendor="Open Liberty" \ + org.opencontainers.image.url="https://openliberty.io/" \ + org.opencontainers.image.source="https://github.com/OpenLiberty/ci.docker" \ + org.opencontainers.image.version="$LIBERTY_VERSION" \ + org.opencontainers.image.revision="$LIBERTY_BUILD_LABEL" \ + liberty.version="$LIBERTY_VERSION" \ + io.openliberty.version="$LIBERTY_VERSION" \ + vendor="Open Liberty" \ + name="Open Liberty" \ + version="$LIBERTY_VERSION" \ + summary="Image for Open Liberty with IBM Semeru Runtime Open Edition OpenJDK 25 with OpenJ9 and UBI 10 micro" \ + description="This image contains the Open Liberty runtime with IBM Semeru Runtime Open Edition OpenJDK 25 with OpenJ9 and Red Hat UBI 10 micro as the base OS. For more information on this image please see https://github.com/OpenLiberty/ci.docker#building-an-application-image" + +COPY NOTICES /opt/ol/NOTICES +COPY helpers /opt/ol/helpers +COPY fixes/ /opt/ol/fixes/ + +# Add default user 1001 and create wlp with right user/permissions before copying +RUN echo "1001:x:1001:0::/home/1001:/sbin/nologin" >> /etc/passwd \ + && mkdir -p /home/1001 \ + && chown 1001:0 /home/1001 \ + && mkdir -p /opt/ol/wlp \ + && chown -R 1001:0 /opt/ol/wlp \ + && chmod -R g+rw /opt/ol/wlp + +COPY --from=builder /usr/bin/dumb-init /usr/bin/dumb-init +COPY --from=builder /usr/bin/awk /usr/bin/awk +COPY --from=builder /usr/bin/wget /usr/bin/wget + +COPY --from=builder /usr/lib64/libpsl.so* /usr/lib64/ +COPY --from=builder /usr/lib64/libmpfr.so* /usr/lib64/ + +# Copy the runtime and licenses +COPY --from=builder --chown=1001:0 /opt/ol/wlp /opt/ol/wlp +COPY --from=builder /licenses /licenses + +# Set Path Shortcuts +ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \ + LOG_DIR=/liberty/logs \ + WLP_OUTPUT_DIR=/opt/ol/wlp/output \ + WLP_SKIP_MAXPERMSIZE=true \ + OPENJ9_SCC=$OPENJ9_SCC + +# Configure Open Liberty +RUN /opt/ol/wlp/bin/server create \ + && rm -rf $WLP_OUTPUT_DIR/.classCache /output/workarea \ + && rm -rf /opt/ol/wlp/usr/servers/defaultServer/server.env + +# Create symlinks && set permissions for non-root user +RUN mkdir /logs \ + && chown -R 1001:0 /logs \ + && chmod -R g+rw /logs \ + && mkdir -p /opt/ol/wlp/usr/shared/resources/lib.index.cache \ + && ln -s /opt/ol/wlp/usr/shared/resources/lib.index.cache /lib.index.cache \ + && mkdir -p $WLP_OUTPUT_DIR/defaultServer \ + && ln -s $WLP_OUTPUT_DIR/defaultServer /output \ + && ln -s /opt/ol/wlp/usr/servers/defaultServer /config \ + && mkdir -p /config/configDropins/defaults \ + && mkdir -p /config/configDropins/overrides \ + && ln -s /opt/ol/wlp /liberty \ + && ln -s /opt/ol/fixes /fixes \ + && echo "" > /config/configDropins/defaults/open-default-port.xml \ + && chown -R 1001:0 /config \ + && chmod -R g+rw /config \ + && chown -R 1001:0 /opt/ol/wlp/usr \ + && chmod -R g+rw /opt/ol/wlp/usr \ + && chown -R 1001:0 /opt/ol/wlp/output \ + && chmod -R g+rw /opt/ol/wlp/output \ + && chown -R 1001:0 /opt/ol/helpers \ + && chmod -R ug+rwx /opt/ol/helpers \ + && chown -R 1001:0 /opt/ol/fixes \ + && chmod -R g+rwx /opt/ol/fixes \ + && mkdir /etc/wlp \ + && chown -R 1001:0 /etc/wlp \ + && chmod -R g+rw /etc/wlp \ + && if [ -e /etc/instanton.ld.so.cache ]; then chmod g+w /etc/ld.so.cache; fi \ + && ln -s /logs /liberty/logs \ + && mkdir /serviceability \ + && chown -R 1001:0 /serviceability \ + && chmod -R g+rw /serviceability + +# Create a new SCC layer +RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \ + && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache /output/workarea \ + && chown -R 1001:0 /opt/ol/wlp/output \ + && chmod -R g+rwx /opt/ol/wlp/output + +#These settings are needed so that we can run as a different user than 1001 after server warmup +ENV RANDFILE=/tmp/.rnd \ + OPENJ9_JAVA_OPTIONS="-XX:+IgnoreUnrecognizedVMOptions -XX:+IdleTuningGcOnIdle -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,readonly,nonFatal -Dosgi.checkConfiguration=false" + +USER 1001 + +EXPOSE 9080 9443 + +ENTRYPOINT ["/opt/ol/helpers/runtime/docker-server.sh"] +CMD ["/opt/ol/wlp/bin/server", "run", "defaultServer"] + diff --git a/releases/latest/kernel-slim/Dockerfile.ubi10-micro.openjdk8 b/releases/latest/kernel-slim/Dockerfile.ubi10-micro.openjdk8 new file mode 100755 index 00000000..f6fb8586 --- /dev/null +++ b/releases/latest/kernel-slim/Dockerfile.ubi10-micro.openjdk8 @@ -0,0 +1,164 @@ +FROM registry.access.redhat.com/ubi10/ubi-minimal:latest AS builder + +USER root + +ARG LIBERTY_VERSION=26.0.0.8 +ARG LIBERTY_SHA=6394fee2c842008e9e36f3474c23330bfe467f48 +ARG LIBERTY_DOWNLOAD_URL=https://repo1.maven.org/maven2/io/openliberty/openliberty-kernel/$LIBERTY_VERSION/openliberty-kernel-$LIBERTY_VERSION.zip + +ARG VERBOSE=false + +# If there is a local copy of the image use that instead +COPY resources/ /tmp/ + +# Install Open Liberty +RUN microdnf -y install shadow-utils wget unzip openssl \ + && if [ ! -f /tmp/wlp.zip ]; then wget -q $LIBERTY_DOWNLOAD_URL -U UA-Open-Liberty-Docker -O /tmp/wlp.zip; fi \ + && echo "$LIBERTY_SHA /tmp/wlp.zip" > /tmp/wlp.zip.sha1 \ + && sha1sum -c /tmp/wlp.zip.sha1 \ + && chmod -R u+x /usr/bin \ + && unzip -q /tmp/wlp.zip -d /opt/ol \ + && mkdir -p /licenses \ + && cp /opt/ol/wlp/LICENSE /licenses/ \ + && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ + && chown -R 1001:0 /opt/ol/wlp \ + && chmod -R g+rw /opt/ol/wlp + +# Install dumb-init +RUN set -eux; \ + ARCH="$(uname -m)"; \ + case "${ARCH}" in \ + aarch64|arm64) \ + DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_aarch64'; \ + DUMB_INIT_SHA256=b7d648f97154a99c539b63c55979cd29f005f88430fb383007fe3458340b795e; \ + ;; \ + amd64|x86_64) \ + DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_x86_64'; \ + DUMB_INIT_SHA256=e874b55f3279ca41415d290c512a7ba9d08f98041b28ae7c2acb19a545f1c4df; \ + ;; \ + ppc64el|ppc64le) \ + DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_ppc64le'; \ + DUMB_INIT_SHA256=3d15e80e29f0f4fa1fc686b00613a2220bc37e83a35283d4b4cca1fbd0a5609f; \ + ;; \ + s390x) \ + DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_s390x'; \ + DUMB_INIT_SHA256=47e4601b152fc6dcb1891e66c30ecc62a2939fd7ffd1515a7c30f281cfec53b7; \ + ;;\ + *) \ + echo "Unsupported arch: ${ARCH}"; \ + exit 1; \ + ;; \ + esac; \ + curl -LfsSo /usr/bin/dumb-init ${DUMB_INIT_URL}; \ + echo "${DUMB_INIT_SHA256} */usr/bin/dumb-init" | sha256sum -c -; \ + chmod +x /usr/bin/dumb-init; + +FROM icr.io/appcafe/ibm-semeru-runtimes:open-8-jre-ubi10-micro + +USER root + +ARG LIBERTY_VERSION=26.0.0.8 +ARG LIBERTY_BUILD_LABEL=cl260820260725-1102 + +ARG OPENJ9_SCC=true +ARG VERBOSE=false + +LABEL org.opencontainers.image.authors="Leo Christy Jesuraj, Iain Lewis, Melissa Lee, Kirby Chin" \ + org.opencontainers.image.vendor="Open Liberty" \ + org.opencontainers.image.url="https://openliberty.io/" \ + org.opencontainers.image.source="https://github.com/OpenLiberty/ci.docker" \ + org.opencontainers.image.version="$LIBERTY_VERSION" \ + org.opencontainers.image.revision="$LIBERTY_BUILD_LABEL" \ + liberty.version="$LIBERTY_VERSION" \ + io.openliberty.version="$LIBERTY_VERSION" \ + vendor="Open Liberty" \ + name="Open Liberty" \ + version="$LIBERTY_VERSION" \ + summary="Image for Open Liberty with IBM Semeru Runtime Open Edition OpenJDK 8 with OpenJ9 and UBI 10 micro" \ + description="This image contains the Open Liberty runtime with IBM Semeru Runtime Open Edition OpenJDK 8 with OpenJ9 and Red Hat UBI 10 micro as the base OS. For more information on this image please see https://github.com/OpenLiberty/ci.docker#building-an-application-image" + +COPY NOTICES /opt/ol/NOTICES +COPY helpers /opt/ol/helpers +COPY fixes/ /opt/ol/fixes/ + +# Add default user 1001 and create wlp with right user/permissions before copying +RUN echo "1001:x:1001:0::/home/1001:/sbin/nologin" >> /etc/passwd \ + && mkdir -p /home/1001 \ + && chown 1001:0 /home/1001 \ + && mkdir -p /opt/ol/wlp \ + && chown -R 1001:0 /opt/ol/wlp \ + && chmod -R g+rw /opt/ol/wlp + +COPY --from=builder /usr/bin/dumb-init /usr/bin/dumb-init +COPY --from=builder /usr/bin/awk /usr/bin/awk +COPY --from=builder /usr/bin/wget /usr/bin/wget + +COPY --from=builder /usr/lib64/libpsl.so* /usr/lib64/ +COPY --from=builder /usr/lib64/libmpfr.so* /usr/lib64/ + +# Copy the runtime and licenses +COPY --from=builder --chown=1001:0 /opt/ol/wlp /opt/ol/wlp +COPY --from=builder /licenses /licenses + +# Set Path Shortcuts +ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \ + LOG_DIR=/liberty/logs \ + WLP_OUTPUT_DIR=/opt/ol/wlp/output \ + WLP_SKIP_MAXPERMSIZE=true \ + OPENJ9_SCC=$OPENJ9_SCC + +# Configure Open Liberty +RUN /opt/ol/wlp/bin/server create \ + && rm -rf $WLP_OUTPUT_DIR/.classCache /output/workarea \ + && rm -rf /opt/ol/wlp/usr/servers/defaultServer/server.env + +# Create symlinks && set permissions for non-root user +RUN mkdir /logs \ + && chown -R 1001:0 /logs \ + && chmod -R g+rw /logs \ + && mkdir -p /opt/ol/wlp/usr/shared/resources/lib.index.cache \ + && ln -s /opt/ol/wlp/usr/shared/resources/lib.index.cache /lib.index.cache \ + && mkdir -p $WLP_OUTPUT_DIR/defaultServer \ + && ln -s $WLP_OUTPUT_DIR/defaultServer /output \ + && ln -s /opt/ol/wlp/usr/servers/defaultServer /config \ + && mkdir -p /config/configDropins/defaults \ + && mkdir -p /config/configDropins/overrides \ + && ln -s /opt/ol/wlp /liberty \ + && ln -s /opt/ol/fixes /fixes \ + && echo "" > /config/configDropins/defaults/open-default-port.xml \ + && chown -R 1001:0 /config \ + && chmod -R g+rw /config \ + && chown -R 1001:0 /opt/ol/wlp/usr \ + && chmod -R g+rw /opt/ol/wlp/usr \ + && chown -R 1001:0 /opt/ol/wlp/output \ + && chmod -R g+rw /opt/ol/wlp/output \ + && chown -R 1001:0 /opt/ol/helpers \ + && chmod -R ug+rwx /opt/ol/helpers \ + && chown -R 1001:0 /opt/ol/fixes \ + && chmod -R g+rwx /opt/ol/fixes \ + && mkdir /etc/wlp \ + && chown -R 1001:0 /etc/wlp \ + && chmod -R g+rw /etc/wlp \ + && if [ -e /etc/instanton.ld.so.cache ]; then chmod g+w /etc/ld.so.cache; fi \ + && ln -s /logs /liberty/logs \ + && mkdir /serviceability \ + && chown -R 1001:0 /serviceability \ + && chmod -R g+rw /serviceability + +# Create a new SCC layer +RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \ + && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache /output/workarea \ + && chown -R 1001:0 /opt/ol/wlp/output \ + && chmod -R g+rwx /opt/ol/wlp/output + +#These settings are needed so that we can run as a different user than 1001 after server warmup +ENV RANDFILE=/tmp/.rnd \ + OPENJ9_JAVA_OPTIONS="-XX:+IgnoreUnrecognizedVMOptions -XX:+IdleTuningGcOnIdle -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,readonly,nonFatal -Dosgi.checkConfiguration=false" + +USER 1001 + +EXPOSE 9080 9443 + +ENTRYPOINT ["/opt/ol/helpers/runtime/docker-server.sh"] +CMD ["/opt/ol/wlp/bin/server", "run", "defaultServer"] + From fb3b98ee36c3f65b2f79b7a439c745bb66ff82a6 Mon Sep 17 00:00:00 2001 From: Melissa Lee Date: Fri, 14 Aug 2026 11:12:10 -0400 Subject: [PATCH 05/14] change curl to wget --- .../26.0.0.8/kernel-slim/Dockerfile.ubi.ibmjava8 | 2 +- .../26.0.0.8/kernel-slim/Dockerfile.ubi.openjdk11 | 2 +- .../26.0.0.8/kernel-slim/Dockerfile.ubi.openjdk17 | 2 +- .../26.0.0.8/kernel-slim/Dockerfile.ubi.openjdk8 | 2 +- .../kernel-slim/Dockerfile.ubi10-minimal.ibmjava8 | 2 +- .../kernel-slim/Dockerfile.ubi10-minimal.openjdk11 | 2 +- .../kernel-slim/Dockerfile.ubi10-minimal.openjdk17 | 2 +- .../kernel-slim/Dockerfile.ubi10-minimal.openjdk21 | 2 +- .../kernel-slim/Dockerfile.ubi10-minimal.openjdk25 | 2 +- .../kernel-slim/Dockerfile.ubi10-minimal.openjdk8 | 2 +- .../latest/beta/Dockerfile.ubi10-minimal.openjdk25 | 2 +- releases/latest/beta/helpers/build/populate_scc.sh | 12 ++++++------ releases/latest/full/helpers/build/populate_scc.sh | 12 ++++++------ releases/latest/kernel-slim/Dockerfile.ubi.ibmjava8 | 2 +- releases/latest/kernel-slim/Dockerfile.ubi.openjdk11 | 2 +- releases/latest/kernel-slim/Dockerfile.ubi.openjdk17 | 2 +- releases/latest/kernel-slim/Dockerfile.ubi.openjdk8 | 2 +- .../kernel-slim/Dockerfile.ubi10-minimal.ibmjava8 | 2 +- .../kernel-slim/Dockerfile.ubi10-minimal.openjdk11 | 2 +- .../kernel-slim/Dockerfile.ubi10-minimal.openjdk17 | 2 +- .../kernel-slim/Dockerfile.ubi10-minimal.openjdk21 | 2 +- .../kernel-slim/Dockerfile.ubi10-minimal.openjdk25 | 2 +- .../kernel-slim/Dockerfile.ubi10-minimal.openjdk8 | 2 +- .../latest/kernel-slim/helpers/build/populate_scc.sh | 12 ++++++------ 24 files changed, 39 insertions(+), 39 deletions(-) diff --git a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi.ibmjava8 b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi.ibmjava8 index 3b306bc4..10dd850e 100644 --- a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi.ibmjava8 +++ b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi.ibmjava8 @@ -91,7 +91,7 @@ RUN adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ COPY --from=getRuntime --chown=1001:0 /opt/ol/wlp /opt/ol/wlp COPY --from=getRuntime /licenses /licenses -RUN yum -y install openssl \ +RUN yum -y install wget openssl \ && yum clean all # Set Path Shortcuts diff --git a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi.openjdk11 b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi.openjdk11 index 7a261197..5eac6d6f 100644 --- a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi.openjdk11 +++ b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi.openjdk11 @@ -91,7 +91,7 @@ RUN adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ COPY --from=getRuntime --chown=1001:0 /opt/ol/wlp /opt/ol/wlp COPY --from=getRuntime /licenses /licenses -RUN yum -y install openssl \ +RUN yum -y install wget openssl \ && yum clean all # Set Path Shortcuts diff --git a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi.openjdk17 b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi.openjdk17 index 93730853..480fbfd7 100644 --- a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi.openjdk17 +++ b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi.openjdk17 @@ -91,7 +91,7 @@ RUN adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ COPY --from=getRuntime --chown=1001:0 /opt/ol/wlp /opt/ol/wlp COPY --from=getRuntime /licenses /licenses -RUN yum -y install openssl \ +RUN yum -y install wget openssl \ && yum clean all # Set Path Shortcuts diff --git a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi.openjdk8 b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi.openjdk8 index 583f14d9..6d9b54b5 100644 --- a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi.openjdk8 +++ b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi.openjdk8 @@ -91,7 +91,7 @@ RUN adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ COPY --from=getRuntime --chown=1001:0 /opt/ol/wlp /opt/ol/wlp COPY --from=getRuntime /licenses /licenses -RUN yum -y install openssl \ +RUN yum -y install wget openssl \ && yum clean all # Set Path Shortcuts diff --git a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-minimal.ibmjava8 b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-minimal.ibmjava8 index 89421ece..521714aa 100644 --- a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-minimal.ibmjava8 +++ b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-minimal.ibmjava8 @@ -91,7 +91,7 @@ RUN set -eux; \ chmod +x /usr/bin/dumb-init; # Add default user 1001 and create wlp with right user/permissions before copying -RUN microdnf -y install shadow-utils findutils openssl \ +RUN microdnf -y install shadow-utils findutils wget openssl \ # && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ && mkdir -p /opt/ol/wlp \ && chown -R 1001:0 /opt/ol/wlp \ diff --git a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-minimal.openjdk11 b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-minimal.openjdk11 index 6c4e4ced..d2274db1 100644 --- a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-minimal.openjdk11 +++ b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-minimal.openjdk11 @@ -82,7 +82,7 @@ RUN set -eux; \ chmod +x /usr/bin/dumb-init; # Add default user 1001 and create wlp with right user/permissions before copying -RUN microdnf -y install shadow-utils findutils openssl \ +RUN microdnf -y install shadow-utils findutils wget openssl \ && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ && mkdir -p /opt/ol/wlp \ && chown -R 1001:0 /opt/ol/wlp \ diff --git a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-minimal.openjdk17 b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-minimal.openjdk17 index a36ca946..468644be 100644 --- a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-minimal.openjdk17 +++ b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-minimal.openjdk17 @@ -82,7 +82,7 @@ RUN set -eux; \ chmod +x /usr/bin/dumb-init; # Add default user 1001 and create wlp with right user/permissions before copying -RUN microdnf -y install shadow-utils findutils openssl \ +RUN microdnf -y install shadow-utils findutils wget openssl \ && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ && mkdir -p /opt/ol/wlp \ && chown -R 1001:0 /opt/ol/wlp \ diff --git a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-minimal.openjdk21 b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-minimal.openjdk21 index 8cb2feff..6eff2bc0 100644 --- a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-minimal.openjdk21 +++ b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-minimal.openjdk21 @@ -82,7 +82,7 @@ RUN set -eux; \ chmod +x /usr/bin/dumb-init; # Add default user 1001 and create wlp with right user/permissions before copying -RUN microdnf -y install shadow-utils findutils openssl \ +RUN microdnf -y install shadow-utils findutils wget openssl \ && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ && mkdir -p /opt/ol/wlp \ && chown -R 1001:0 /opt/ol/wlp \ diff --git a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-minimal.openjdk25 b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-minimal.openjdk25 index 3a8cf702..2aa2210c 100644 --- a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-minimal.openjdk25 +++ b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-minimal.openjdk25 @@ -82,7 +82,7 @@ RUN set -eux; \ chmod +x /usr/bin/dumb-init; # Add default user 1001 and create wlp with right user/permissions before copying -RUN microdnf -y install shadow-utils findutils openssl \ +RUN microdnf -y install shadow-utils findutils wget openssl \ && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ && mkdir -p /opt/ol/wlp \ && chown -R 1001:0 /opt/ol/wlp \ diff --git a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-minimal.openjdk8 b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-minimal.openjdk8 index 8428da84..19333c70 100644 --- a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-minimal.openjdk8 +++ b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-minimal.openjdk8 @@ -82,7 +82,7 @@ RUN set -eux; \ chmod +x /usr/bin/dumb-init; # Add default user 1001 and create wlp with right user/permissions before copying -RUN microdnf -y install shadow-utils findutils openssl \ +RUN microdnf -y install shadow-utils findutils wget openssl \ && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ && mkdir -p /opt/ol/wlp \ && chown -R 1001:0 /opt/ol/wlp \ diff --git a/releases/latest/beta/Dockerfile.ubi10-minimal.openjdk25 b/releases/latest/beta/Dockerfile.ubi10-minimal.openjdk25 index c0834456..fb7b0636 100644 --- a/releases/latest/beta/Dockerfile.ubi10-minimal.openjdk25 +++ b/releases/latest/beta/Dockerfile.ubi10-minimal.openjdk25 @@ -82,7 +82,7 @@ RUN set -eux; \ chmod +x /usr/bin/dumb-init; # Add default user 1001 and create wlp with right user/permissions before copying -RUN microdnf -y install shadow-utils findutils openssl \ +RUN microdnf -y install shadow-utils findutils wget openssl \ && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ && mkdir -p /opt/ol/wlp \ && chown -R 1001:0 /opt/ol/wlp \ diff --git a/releases/latest/beta/helpers/build/populate_scc.sh b/releases/latest/beta/helpers/build/populate_scc.sh index f0805015..85833a76 100755 --- a/releases/latest/beta/helpers/build/populate_scc.sh +++ b/releases/latest/beta/helpers/build/populate_scc.sh @@ -76,10 +76,10 @@ do -s Size of the SCC in megabytes (m suffix required). (Default: $SCC_SIZE) -t Trim the SCC to eliminate most of the free space, if any. -d Don't trim the SCC. - -w Use curl to warm an endpoint during SCC creation. (Default: $WARM_ENDPOINT) + -w Use wget to warm an endpoint during SCC creation. (Default: $WARM_ENDPOINT) -c Do not warm an endpoint during SCC creation. -u The URL endpoint to warm during SCC creation. (Default: $WARM_ENDPOINT_URL) - -m Use curl to warm the openapi endpoint during SCC creation. (Default: $WARM_OPENAPI_ENDPOINT) + -m Use wget to warm the openapi endpoint during SCC creation. (Default: $WARM_OPENAPI_ENDPOINT) -l Do not warm the openapi endpoint during SCC creation. -o The Open API URL endpoint to warm during SCC creation. (Default: $WARM_ENDPOINT_OPENAPI_URL) @@ -112,11 +112,11 @@ then if [ ${WARM_ENDPOINT} == true ] then - curl --silent --output /dev/null --show-error --fail --max-time 5 ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing" + wget -q -O /dev/null -T 5 ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing" fi if [ ${WARM_OPENAPI_ENDPOINT} == true ] then - curl --silent --output /dev/null --show-error --fail --max-time 5 ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing" + wget -q -O /dev/null -T 5 ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing" fi /opt/ol/wlp/bin/server stop @@ -147,11 +147,11 @@ do if [ ${WARM_ENDPOINT} == true ] then - curl --silent --output /dev/null --show-error --fail --max-time 5 ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing" + wget -q -O /dev/null -T 5 ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing" fi if [ ${WARM_OPENAPI_ENDPOINT} == true ] then - curl --silent --output /dev/null --show-error --fail --max-time 5 ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing" + wget -q -O /dev/null -T 5 ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing" fi /opt/ol/wlp/bin/server stop diff --git a/releases/latest/full/helpers/build/populate_scc.sh b/releases/latest/full/helpers/build/populate_scc.sh index 1012a07a..1c4cae57 100755 --- a/releases/latest/full/helpers/build/populate_scc.sh +++ b/releases/latest/full/helpers/build/populate_scc.sh @@ -81,10 +81,10 @@ do -s Size of the SCC in megabytes (m suffix required). (Default: $SCC_SIZE) -t Trim the SCC to eliminate most of the free space, if any. -d Don't trim the SCC. - -w Use curl to warm an endpoint during SCC creation. (Default: $WARM_ENDPOINT) + -w Use wget to warm an endpoint during SCC creation. (Default: $WARM_ENDPOINT) -c Do not warm an endpoint during SCC creation. -u The URL endpoint to warm during SCC creation. (Default: $WARM_ENDPOINT_URL) - -m Use curl to warm the openapi endpoint during SCC creation. (Default: $WARM_OPENAPI_ENDPOINT) + -m Use wget to warm the openapi endpoint during SCC creation. (Default: $WARM_OPENAPI_ENDPOINT) -l Do not warm the openapi endpoint during SCC creation. -o The Open API URL endpoint to warm during SCC creation. (Default: $WARM_ENDPOINT_OPENAPI_URL) @@ -117,11 +117,11 @@ then if [ ${WARM_ENDPOINT} == true ] then - curl --silent --output /dev/null --show-error --fail --max-time 5 ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing" + wget -q -O /dev/null -T 5 ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing" fi if [ ${WARM_OPENAPI_ENDPOINT} == true ] then - curl --silent --output /dev/null --show-error --fail --max-time 5 ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing" + wget -q -O /dev/null -T 5 ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing" fi /opt/ol/wlp/bin/server stop @@ -152,11 +152,11 @@ do if [ ${WARM_ENDPOINT} == true ] then - curl --silent --output /dev/null --show-error --fail --max-time 5 ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing" + wget -q -O /dev/null -T 5 ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing" fi if [ ${WARM_OPENAPI_ENDPOINT} == true ] then - curl --silent --output /dev/null --show-error --fail --max-time 5 ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing" + wget -q -O /dev/null -T 5 ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing" fi /opt/ol/wlp/bin/server stop diff --git a/releases/latest/kernel-slim/Dockerfile.ubi.ibmjava8 b/releases/latest/kernel-slim/Dockerfile.ubi.ibmjava8 index 3b306bc4..10dd850e 100644 --- a/releases/latest/kernel-slim/Dockerfile.ubi.ibmjava8 +++ b/releases/latest/kernel-slim/Dockerfile.ubi.ibmjava8 @@ -91,7 +91,7 @@ RUN adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ COPY --from=getRuntime --chown=1001:0 /opt/ol/wlp /opt/ol/wlp COPY --from=getRuntime /licenses /licenses -RUN yum -y install openssl \ +RUN yum -y install wget openssl \ && yum clean all # Set Path Shortcuts diff --git a/releases/latest/kernel-slim/Dockerfile.ubi.openjdk11 b/releases/latest/kernel-slim/Dockerfile.ubi.openjdk11 index 7a261197..5eac6d6f 100644 --- a/releases/latest/kernel-slim/Dockerfile.ubi.openjdk11 +++ b/releases/latest/kernel-slim/Dockerfile.ubi.openjdk11 @@ -91,7 +91,7 @@ RUN adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ COPY --from=getRuntime --chown=1001:0 /opt/ol/wlp /opt/ol/wlp COPY --from=getRuntime /licenses /licenses -RUN yum -y install openssl \ +RUN yum -y install wget openssl \ && yum clean all # Set Path Shortcuts diff --git a/releases/latest/kernel-slim/Dockerfile.ubi.openjdk17 b/releases/latest/kernel-slim/Dockerfile.ubi.openjdk17 index 93730853..480fbfd7 100644 --- a/releases/latest/kernel-slim/Dockerfile.ubi.openjdk17 +++ b/releases/latest/kernel-slim/Dockerfile.ubi.openjdk17 @@ -91,7 +91,7 @@ RUN adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ COPY --from=getRuntime --chown=1001:0 /opt/ol/wlp /opt/ol/wlp COPY --from=getRuntime /licenses /licenses -RUN yum -y install openssl \ +RUN yum -y install wget openssl \ && yum clean all # Set Path Shortcuts diff --git a/releases/latest/kernel-slim/Dockerfile.ubi.openjdk8 b/releases/latest/kernel-slim/Dockerfile.ubi.openjdk8 index 583f14d9..6d9b54b5 100644 --- a/releases/latest/kernel-slim/Dockerfile.ubi.openjdk8 +++ b/releases/latest/kernel-slim/Dockerfile.ubi.openjdk8 @@ -91,7 +91,7 @@ RUN adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ COPY --from=getRuntime --chown=1001:0 /opt/ol/wlp /opt/ol/wlp COPY --from=getRuntime /licenses /licenses -RUN yum -y install openssl \ +RUN yum -y install wget openssl \ && yum clean all # Set Path Shortcuts diff --git a/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.ibmjava8 b/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.ibmjava8 index 89421ece..521714aa 100644 --- a/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.ibmjava8 +++ b/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.ibmjava8 @@ -91,7 +91,7 @@ RUN set -eux; \ chmod +x /usr/bin/dumb-init; # Add default user 1001 and create wlp with right user/permissions before copying -RUN microdnf -y install shadow-utils findutils openssl \ +RUN microdnf -y install shadow-utils findutils wget openssl \ # && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ && mkdir -p /opt/ol/wlp \ && chown -R 1001:0 /opt/ol/wlp \ diff --git a/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk11 b/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk11 index 6c4e4ced..d2274db1 100644 --- a/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk11 +++ b/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk11 @@ -82,7 +82,7 @@ RUN set -eux; \ chmod +x /usr/bin/dumb-init; # Add default user 1001 and create wlp with right user/permissions before copying -RUN microdnf -y install shadow-utils findutils openssl \ +RUN microdnf -y install shadow-utils findutils wget openssl \ && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ && mkdir -p /opt/ol/wlp \ && chown -R 1001:0 /opt/ol/wlp \ diff --git a/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk17 b/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk17 index a36ca946..468644be 100644 --- a/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk17 +++ b/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk17 @@ -82,7 +82,7 @@ RUN set -eux; \ chmod +x /usr/bin/dumb-init; # Add default user 1001 and create wlp with right user/permissions before copying -RUN microdnf -y install shadow-utils findutils openssl \ +RUN microdnf -y install shadow-utils findutils wget openssl \ && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ && mkdir -p /opt/ol/wlp \ && chown -R 1001:0 /opt/ol/wlp \ diff --git a/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk21 b/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk21 index 8cb2feff..6eff2bc0 100644 --- a/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk21 +++ b/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk21 @@ -82,7 +82,7 @@ RUN set -eux; \ chmod +x /usr/bin/dumb-init; # Add default user 1001 and create wlp with right user/permissions before copying -RUN microdnf -y install shadow-utils findutils openssl \ +RUN microdnf -y install shadow-utils findutils wget openssl \ && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ && mkdir -p /opt/ol/wlp \ && chown -R 1001:0 /opt/ol/wlp \ diff --git a/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk25 b/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk25 index 3a8cf702..2aa2210c 100644 --- a/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk25 +++ b/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk25 @@ -82,7 +82,7 @@ RUN set -eux; \ chmod +x /usr/bin/dumb-init; # Add default user 1001 and create wlp with right user/permissions before copying -RUN microdnf -y install shadow-utils findutils openssl \ +RUN microdnf -y install shadow-utils findutils wget openssl \ && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ && mkdir -p /opt/ol/wlp \ && chown -R 1001:0 /opt/ol/wlp \ diff --git a/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk8 b/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk8 index 8428da84..19333c70 100644 --- a/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk8 +++ b/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk8 @@ -82,7 +82,7 @@ RUN set -eux; \ chmod +x /usr/bin/dumb-init; # Add default user 1001 and create wlp with right user/permissions before copying -RUN microdnf -y install shadow-utils findutils openssl \ +RUN microdnf -y install shadow-utils findutils wget openssl \ && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ && mkdir -p /opt/ol/wlp \ && chown -R 1001:0 /opt/ol/wlp \ diff --git a/releases/latest/kernel-slim/helpers/build/populate_scc.sh b/releases/latest/kernel-slim/helpers/build/populate_scc.sh index 1012a07a..1c4cae57 100755 --- a/releases/latest/kernel-slim/helpers/build/populate_scc.sh +++ b/releases/latest/kernel-slim/helpers/build/populate_scc.sh @@ -81,10 +81,10 @@ do -s Size of the SCC in megabytes (m suffix required). (Default: $SCC_SIZE) -t Trim the SCC to eliminate most of the free space, if any. -d Don't trim the SCC. - -w Use curl to warm an endpoint during SCC creation. (Default: $WARM_ENDPOINT) + -w Use wget to warm an endpoint during SCC creation. (Default: $WARM_ENDPOINT) -c Do not warm an endpoint during SCC creation. -u The URL endpoint to warm during SCC creation. (Default: $WARM_ENDPOINT_URL) - -m Use curl to warm the openapi endpoint during SCC creation. (Default: $WARM_OPENAPI_ENDPOINT) + -m Use wget to warm the openapi endpoint during SCC creation. (Default: $WARM_OPENAPI_ENDPOINT) -l Do not warm the openapi endpoint during SCC creation. -o The Open API URL endpoint to warm during SCC creation. (Default: $WARM_ENDPOINT_OPENAPI_URL) @@ -117,11 +117,11 @@ then if [ ${WARM_ENDPOINT} == true ] then - curl --silent --output /dev/null --show-error --fail --max-time 5 ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing" + wget -q -O /dev/null -T 5 ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing" fi if [ ${WARM_OPENAPI_ENDPOINT} == true ] then - curl --silent --output /dev/null --show-error --fail --max-time 5 ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing" + wget -q -O /dev/null -T 5 ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing" fi /opt/ol/wlp/bin/server stop @@ -152,11 +152,11 @@ do if [ ${WARM_ENDPOINT} == true ] then - curl --silent --output /dev/null --show-error --fail --max-time 5 ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing" + wget -q -O /dev/null -T 5 ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing" fi if [ ${WARM_OPENAPI_ENDPOINT} == true ] then - curl --silent --output /dev/null --show-error --fail --max-time 5 ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing" + wget -q -O /dev/null -T 5 ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing" fi /opt/ol/wlp/bin/server stop From a827ef951587d37620428b3cebed5518260785e2 Mon Sep 17 00:00:00 2001 From: Melissa Lee Date: Fri, 14 Aug 2026 11:18:46 -0400 Subject: [PATCH 06/14] Add wget for ubi full --- releases/26.0.0.8/full/Dockerfile.ubi.ibmjava8 | 2 +- releases/26.0.0.8/full/Dockerfile.ubi.openjdk11 | 2 +- releases/26.0.0.8/full/Dockerfile.ubi.openjdk17 | 2 +- releases/26.0.0.8/full/Dockerfile.ubi.openjdk8 | 2 +- releases/latest/full/Dockerfile.ubi.ibmjava8 | 2 +- releases/latest/full/Dockerfile.ubi.openjdk11 | 2 +- releases/latest/full/Dockerfile.ubi.openjdk17 | 2 +- releases/latest/full/Dockerfile.ubi.openjdk8 | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/releases/26.0.0.8/full/Dockerfile.ubi.ibmjava8 b/releases/26.0.0.8/full/Dockerfile.ubi.ibmjava8 index d315264f..fe4e5e14 100644 --- a/releases/26.0.0.8/full/Dockerfile.ubi.ibmjava8 +++ b/releases/26.0.0.8/full/Dockerfile.ubi.ibmjava8 @@ -91,7 +91,7 @@ RUN adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ COPY --from=getRuntime --chown=1001:0 /opt/ol/wlp /opt/ol/wlp COPY --from=getRuntime /licenses /licenses -RUN yum -y install openssl \ +RUN yum -y install wget openssl \ && yum clean all # Set Path Shortcuts diff --git a/releases/26.0.0.8/full/Dockerfile.ubi.openjdk11 b/releases/26.0.0.8/full/Dockerfile.ubi.openjdk11 index c803d5e3..31689d2f 100644 --- a/releases/26.0.0.8/full/Dockerfile.ubi.openjdk11 +++ b/releases/26.0.0.8/full/Dockerfile.ubi.openjdk11 @@ -91,7 +91,7 @@ RUN adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ COPY --from=getRuntime --chown=1001:0 /opt/ol/wlp /opt/ol/wlp COPY --from=getRuntime /licenses /licenses -RUN yum -y install openssl \ +RUN yum -y install wget openssl \ && yum clean all # Set Path Shortcuts diff --git a/releases/26.0.0.8/full/Dockerfile.ubi.openjdk17 b/releases/26.0.0.8/full/Dockerfile.ubi.openjdk17 index 2738af45..1da85b47 100644 --- a/releases/26.0.0.8/full/Dockerfile.ubi.openjdk17 +++ b/releases/26.0.0.8/full/Dockerfile.ubi.openjdk17 @@ -91,7 +91,7 @@ RUN adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ COPY --from=getRuntime --chown=1001:0 /opt/ol/wlp /opt/ol/wlp COPY --from=getRuntime /licenses /licenses -RUN yum -y install openssl \ +RUN yum -y install wget openssl \ && yum clean all # Set Path Shortcuts diff --git a/releases/26.0.0.8/full/Dockerfile.ubi.openjdk8 b/releases/26.0.0.8/full/Dockerfile.ubi.openjdk8 index d34bd11f..dcd19b76 100644 --- a/releases/26.0.0.8/full/Dockerfile.ubi.openjdk8 +++ b/releases/26.0.0.8/full/Dockerfile.ubi.openjdk8 @@ -91,7 +91,7 @@ RUN adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ COPY --from=getRuntime --chown=1001:0 /opt/ol/wlp /opt/ol/wlp COPY --from=getRuntime /licenses /licenses -RUN yum -y install openssl \ +RUN yum -y install wget openssl \ && yum clean all # Set Path Shortcuts diff --git a/releases/latest/full/Dockerfile.ubi.ibmjava8 b/releases/latest/full/Dockerfile.ubi.ibmjava8 index d315264f..fe4e5e14 100644 --- a/releases/latest/full/Dockerfile.ubi.ibmjava8 +++ b/releases/latest/full/Dockerfile.ubi.ibmjava8 @@ -91,7 +91,7 @@ RUN adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ COPY --from=getRuntime --chown=1001:0 /opt/ol/wlp /opt/ol/wlp COPY --from=getRuntime /licenses /licenses -RUN yum -y install openssl \ +RUN yum -y install wget openssl \ && yum clean all # Set Path Shortcuts diff --git a/releases/latest/full/Dockerfile.ubi.openjdk11 b/releases/latest/full/Dockerfile.ubi.openjdk11 index c803d5e3..31689d2f 100644 --- a/releases/latest/full/Dockerfile.ubi.openjdk11 +++ b/releases/latest/full/Dockerfile.ubi.openjdk11 @@ -91,7 +91,7 @@ RUN adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ COPY --from=getRuntime --chown=1001:0 /opt/ol/wlp /opt/ol/wlp COPY --from=getRuntime /licenses /licenses -RUN yum -y install openssl \ +RUN yum -y install wget openssl \ && yum clean all # Set Path Shortcuts diff --git a/releases/latest/full/Dockerfile.ubi.openjdk17 b/releases/latest/full/Dockerfile.ubi.openjdk17 index 2738af45..1da85b47 100644 --- a/releases/latest/full/Dockerfile.ubi.openjdk17 +++ b/releases/latest/full/Dockerfile.ubi.openjdk17 @@ -91,7 +91,7 @@ RUN adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ COPY --from=getRuntime --chown=1001:0 /opt/ol/wlp /opt/ol/wlp COPY --from=getRuntime /licenses /licenses -RUN yum -y install openssl \ +RUN yum -y install wget openssl \ && yum clean all # Set Path Shortcuts diff --git a/releases/latest/full/Dockerfile.ubi.openjdk8 b/releases/latest/full/Dockerfile.ubi.openjdk8 index d34bd11f..dcd19b76 100644 --- a/releases/latest/full/Dockerfile.ubi.openjdk8 +++ b/releases/latest/full/Dockerfile.ubi.openjdk8 @@ -91,7 +91,7 @@ RUN adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ COPY --from=getRuntime --chown=1001:0 /opt/ol/wlp /opt/ol/wlp COPY --from=getRuntime /licenses /licenses -RUN yum -y install openssl \ +RUN yum -y install wget openssl \ && yum clean all # Set Path Shortcuts From 8cf6678f6c697909997cc1f4182ff363a3754e7a Mon Sep 17 00:00:00 2001 From: Melissa Lee Date: Fri, 14 Aug 2026 13:27:22 -0400 Subject: [PATCH 07/14] Use curl if exists --- releases/26.0.0.8/full/Dockerfile.ubi.ibmjava8 | 2 +- releases/26.0.0.8/full/Dockerfile.ubi.openjdk11 | 2 +- releases/26.0.0.8/full/Dockerfile.ubi.openjdk17 | 2 +- releases/26.0.0.8/full/Dockerfile.ubi.openjdk8 | 2 +- .../26.0.0.8/kernel-slim/Dockerfile.ubi.ibmjava8 | 2 +- .../26.0.0.8/kernel-slim/Dockerfile.ubi.openjdk11 | 2 +- .../26.0.0.8/kernel-slim/Dockerfile.ubi.openjdk17 | 2 +- .../26.0.0.8/kernel-slim/Dockerfile.ubi.openjdk8 | 2 +- .../kernel-slim/Dockerfile.ubi10-minimal.ibmjava8 | 2 +- .../Dockerfile.ubi10-minimal.openjdk11 | 2 +- .../Dockerfile.ubi10-minimal.openjdk17 | 2 +- .../Dockerfile.ubi10-minimal.openjdk21 | 2 +- .../Dockerfile.ubi10-minimal.openjdk25 | 2 +- .../kernel-slim/Dockerfile.ubi10-minimal.openjdk8 | 2 +- .../kernel-slim/helpers/build/populate_scc.sh | 15 +++++++++++---- .../beta/Dockerfile.ubi10-minimal.openjdk25 | 2 +- .../latest/beta/helpers/build/populate_scc.sh | 15 +++++++++++---- releases/latest/full/Dockerfile.ubi.ibmjava8 | 2 +- releases/latest/full/Dockerfile.ubi.openjdk11 | 2 +- releases/latest/full/Dockerfile.ubi.openjdk17 | 2 +- releases/latest/full/Dockerfile.ubi.openjdk8 | 2 +- .../latest/full/helpers/build/populate_scc.sh | 15 +++++++++++---- .../latest/kernel-slim/Dockerfile.ubi.ibmjava8 | 2 +- .../latest/kernel-slim/Dockerfile.ubi.openjdk11 | 2 +- .../latest/kernel-slim/Dockerfile.ubi.openjdk17 | 2 +- .../latest/kernel-slim/Dockerfile.ubi.openjdk8 | 2 +- .../kernel-slim/Dockerfile.ubi10-minimal.ibmjava8 | 2 +- .../Dockerfile.ubi10-minimal.openjdk11 | 2 +- .../Dockerfile.ubi10-minimal.openjdk17 | 2 +- .../Dockerfile.ubi10-minimal.openjdk21 | 2 +- .../Dockerfile.ubi10-minimal.openjdk25 | 2 +- .../kernel-slim/Dockerfile.ubi10-minimal.openjdk8 | 2 +- .../kernel-slim/helpers/build/populate_scc.sh | 15 +++++++++++---- 33 files changed, 73 insertions(+), 45 deletions(-) diff --git a/releases/26.0.0.8/full/Dockerfile.ubi.ibmjava8 b/releases/26.0.0.8/full/Dockerfile.ubi.ibmjava8 index fe4e5e14..d315264f 100644 --- a/releases/26.0.0.8/full/Dockerfile.ubi.ibmjava8 +++ b/releases/26.0.0.8/full/Dockerfile.ubi.ibmjava8 @@ -91,7 +91,7 @@ RUN adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ COPY --from=getRuntime --chown=1001:0 /opt/ol/wlp /opt/ol/wlp COPY --from=getRuntime /licenses /licenses -RUN yum -y install wget openssl \ +RUN yum -y install openssl \ && yum clean all # Set Path Shortcuts diff --git a/releases/26.0.0.8/full/Dockerfile.ubi.openjdk11 b/releases/26.0.0.8/full/Dockerfile.ubi.openjdk11 index 31689d2f..c803d5e3 100644 --- a/releases/26.0.0.8/full/Dockerfile.ubi.openjdk11 +++ b/releases/26.0.0.8/full/Dockerfile.ubi.openjdk11 @@ -91,7 +91,7 @@ RUN adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ COPY --from=getRuntime --chown=1001:0 /opt/ol/wlp /opt/ol/wlp COPY --from=getRuntime /licenses /licenses -RUN yum -y install wget openssl \ +RUN yum -y install openssl \ && yum clean all # Set Path Shortcuts diff --git a/releases/26.0.0.8/full/Dockerfile.ubi.openjdk17 b/releases/26.0.0.8/full/Dockerfile.ubi.openjdk17 index 1da85b47..2738af45 100644 --- a/releases/26.0.0.8/full/Dockerfile.ubi.openjdk17 +++ b/releases/26.0.0.8/full/Dockerfile.ubi.openjdk17 @@ -91,7 +91,7 @@ RUN adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ COPY --from=getRuntime --chown=1001:0 /opt/ol/wlp /opt/ol/wlp COPY --from=getRuntime /licenses /licenses -RUN yum -y install wget openssl \ +RUN yum -y install openssl \ && yum clean all # Set Path Shortcuts diff --git a/releases/26.0.0.8/full/Dockerfile.ubi.openjdk8 b/releases/26.0.0.8/full/Dockerfile.ubi.openjdk8 index dcd19b76..d34bd11f 100644 --- a/releases/26.0.0.8/full/Dockerfile.ubi.openjdk8 +++ b/releases/26.0.0.8/full/Dockerfile.ubi.openjdk8 @@ -91,7 +91,7 @@ RUN adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ COPY --from=getRuntime --chown=1001:0 /opt/ol/wlp /opt/ol/wlp COPY --from=getRuntime /licenses /licenses -RUN yum -y install wget openssl \ +RUN yum -y install openssl \ && yum clean all # Set Path Shortcuts diff --git a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi.ibmjava8 b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi.ibmjava8 index 10dd850e..3b306bc4 100644 --- a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi.ibmjava8 +++ b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi.ibmjava8 @@ -91,7 +91,7 @@ RUN adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ COPY --from=getRuntime --chown=1001:0 /opt/ol/wlp /opt/ol/wlp COPY --from=getRuntime /licenses /licenses -RUN yum -y install wget openssl \ +RUN yum -y install openssl \ && yum clean all # Set Path Shortcuts diff --git a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi.openjdk11 b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi.openjdk11 index 5eac6d6f..7a261197 100644 --- a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi.openjdk11 +++ b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi.openjdk11 @@ -91,7 +91,7 @@ RUN adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ COPY --from=getRuntime --chown=1001:0 /opt/ol/wlp /opt/ol/wlp COPY --from=getRuntime /licenses /licenses -RUN yum -y install wget openssl \ +RUN yum -y install openssl \ && yum clean all # Set Path Shortcuts diff --git a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi.openjdk17 b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi.openjdk17 index 480fbfd7..93730853 100644 --- a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi.openjdk17 +++ b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi.openjdk17 @@ -91,7 +91,7 @@ RUN adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ COPY --from=getRuntime --chown=1001:0 /opt/ol/wlp /opt/ol/wlp COPY --from=getRuntime /licenses /licenses -RUN yum -y install wget openssl \ +RUN yum -y install openssl \ && yum clean all # Set Path Shortcuts diff --git a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi.openjdk8 b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi.openjdk8 index 6d9b54b5..583f14d9 100644 --- a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi.openjdk8 +++ b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi.openjdk8 @@ -91,7 +91,7 @@ RUN adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ COPY --from=getRuntime --chown=1001:0 /opt/ol/wlp /opt/ol/wlp COPY --from=getRuntime /licenses /licenses -RUN yum -y install wget openssl \ +RUN yum -y install openssl \ && yum clean all # Set Path Shortcuts diff --git a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-minimal.ibmjava8 b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-minimal.ibmjava8 index 521714aa..89421ece 100644 --- a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-minimal.ibmjava8 +++ b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-minimal.ibmjava8 @@ -91,7 +91,7 @@ RUN set -eux; \ chmod +x /usr/bin/dumb-init; # Add default user 1001 and create wlp with right user/permissions before copying -RUN microdnf -y install shadow-utils findutils wget openssl \ +RUN microdnf -y install shadow-utils findutils openssl \ # && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ && mkdir -p /opt/ol/wlp \ && chown -R 1001:0 /opt/ol/wlp \ diff --git a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-minimal.openjdk11 b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-minimal.openjdk11 index d2274db1..6c4e4ced 100644 --- a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-minimal.openjdk11 +++ b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-minimal.openjdk11 @@ -82,7 +82,7 @@ RUN set -eux; \ chmod +x /usr/bin/dumb-init; # Add default user 1001 and create wlp with right user/permissions before copying -RUN microdnf -y install shadow-utils findutils wget openssl \ +RUN microdnf -y install shadow-utils findutils openssl \ && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ && mkdir -p /opt/ol/wlp \ && chown -R 1001:0 /opt/ol/wlp \ diff --git a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-minimal.openjdk17 b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-minimal.openjdk17 index 468644be..a36ca946 100644 --- a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-minimal.openjdk17 +++ b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-minimal.openjdk17 @@ -82,7 +82,7 @@ RUN set -eux; \ chmod +x /usr/bin/dumb-init; # Add default user 1001 and create wlp with right user/permissions before copying -RUN microdnf -y install shadow-utils findutils wget openssl \ +RUN microdnf -y install shadow-utils findutils openssl \ && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ && mkdir -p /opt/ol/wlp \ && chown -R 1001:0 /opt/ol/wlp \ diff --git a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-minimal.openjdk21 b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-minimal.openjdk21 index 6eff2bc0..8cb2feff 100644 --- a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-minimal.openjdk21 +++ b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-minimal.openjdk21 @@ -82,7 +82,7 @@ RUN set -eux; \ chmod +x /usr/bin/dumb-init; # Add default user 1001 and create wlp with right user/permissions before copying -RUN microdnf -y install shadow-utils findutils wget openssl \ +RUN microdnf -y install shadow-utils findutils openssl \ && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ && mkdir -p /opt/ol/wlp \ && chown -R 1001:0 /opt/ol/wlp \ diff --git a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-minimal.openjdk25 b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-minimal.openjdk25 index 2aa2210c..3a8cf702 100644 --- a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-minimal.openjdk25 +++ b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-minimal.openjdk25 @@ -82,7 +82,7 @@ RUN set -eux; \ chmod +x /usr/bin/dumb-init; # Add default user 1001 and create wlp with right user/permissions before copying -RUN microdnf -y install shadow-utils findutils wget openssl \ +RUN microdnf -y install shadow-utils findutils openssl \ && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ && mkdir -p /opt/ol/wlp \ && chown -R 1001:0 /opt/ol/wlp \ diff --git a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-minimal.openjdk8 b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-minimal.openjdk8 index 19333c70..8428da84 100644 --- a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-minimal.openjdk8 +++ b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-minimal.openjdk8 @@ -82,7 +82,7 @@ RUN set -eux; \ chmod +x /usr/bin/dumb-init; # Add default user 1001 and create wlp with right user/permissions before copying -RUN microdnf -y install shadow-utils findutils wget openssl \ +RUN microdnf -y install shadow-utils findutils openssl \ && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ && mkdir -p /opt/ol/wlp \ && chown -R 1001:0 /opt/ol/wlp \ diff --git a/releases/26.0.0.8/kernel-slim/helpers/build/populate_scc.sh b/releases/26.0.0.8/kernel-slim/helpers/build/populate_scc.sh index 1c4cae57..0e4e99cf 100755 --- a/releases/26.0.0.8/kernel-slim/helpers/build/populate_scc.sh +++ b/releases/26.0.0.8/kernel-slim/helpers/build/populate_scc.sh @@ -105,6 +105,13 @@ done OLD_UMASK=`umask` umask 002 # 002 is required to provide group rw permission to the cache when `-Xshareclasses:groupAccess` options is used +# Use curl if available, otherwise use wget +if command -v curl > /dev/null 2>&1; then + http_get() { curl --silent --output /dev/null --show-error --fail --max-time 5 "$1"; } +else + http_get() { wget -q -O /dev/null -T 5 "$1"; } +fi + # Explicity create a class cache layer for this image layer here rather than allowing # `server start` to do it, which will lead to problems because multiple JVMs will be started. java $CREATE_LAYER -Xscmx$SCC_SIZE -version @@ -117,11 +124,11 @@ then if [ ${WARM_ENDPOINT} == true ] then - wget -q -O /dev/null -T 5 ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing" + http_get ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing" fi if [ ${WARM_OPENAPI_ENDPOINT} == true ] then - wget -q -O /dev/null -T 5 ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing" + http_get ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing" fi /opt/ol/wlp/bin/server stop @@ -152,11 +159,11 @@ do if [ ${WARM_ENDPOINT} == true ] then - wget -q -O /dev/null -T 5 ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing" + http_get ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing" fi if [ ${WARM_OPENAPI_ENDPOINT} == true ] then - wget -q -O /dev/null -T 5 ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing" + http_get ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing" fi /opt/ol/wlp/bin/server stop diff --git a/releases/latest/beta/Dockerfile.ubi10-minimal.openjdk25 b/releases/latest/beta/Dockerfile.ubi10-minimal.openjdk25 index fb7b0636..c0834456 100644 --- a/releases/latest/beta/Dockerfile.ubi10-minimal.openjdk25 +++ b/releases/latest/beta/Dockerfile.ubi10-minimal.openjdk25 @@ -82,7 +82,7 @@ RUN set -eux; \ chmod +x /usr/bin/dumb-init; # Add default user 1001 and create wlp with right user/permissions before copying -RUN microdnf -y install shadow-utils findutils wget openssl \ +RUN microdnf -y install shadow-utils findutils openssl \ && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ && mkdir -p /opt/ol/wlp \ && chown -R 1001:0 /opt/ol/wlp \ diff --git a/releases/latest/beta/helpers/build/populate_scc.sh b/releases/latest/beta/helpers/build/populate_scc.sh index 85833a76..ac797145 100755 --- a/releases/latest/beta/helpers/build/populate_scc.sh +++ b/releases/latest/beta/helpers/build/populate_scc.sh @@ -100,6 +100,13 @@ done OLD_UMASK=`umask` umask 002 # 002 is required to provide group rw permission to the cache when `-Xshareclasses:groupAccess` options is used +# Use curl if available, otherwise use wget +if command -v curl > /dev/null 2>&1; then + http_get() { curl --silent --output /dev/null --show-error --fail --max-time 5 "$1"; } +else + http_get() { wget -q -O /dev/null -T 5 "$1"; } +fi + # Explicity create a class cache layer for this image layer here rather than allowing # `server start` to do it, which will lead to problems because multiple JVMs will be started. java $CREATE_LAYER -Xscmx$SCC_SIZE -version @@ -112,11 +119,11 @@ then if [ ${WARM_ENDPOINT} == true ] then - wget -q -O /dev/null -T 5 ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing" + http_get ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing" fi if [ ${WARM_OPENAPI_ENDPOINT} == true ] then - wget -q -O /dev/null -T 5 ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing" + http_get ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing" fi /opt/ol/wlp/bin/server stop @@ -147,11 +154,11 @@ do if [ ${WARM_ENDPOINT} == true ] then - wget -q -O /dev/null -T 5 ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing" + http_get ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing" fi if [ ${WARM_OPENAPI_ENDPOINT} == true ] then - wget -q -O /dev/null -T 5 ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing" + http_get ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing" fi /opt/ol/wlp/bin/server stop diff --git a/releases/latest/full/Dockerfile.ubi.ibmjava8 b/releases/latest/full/Dockerfile.ubi.ibmjava8 index fe4e5e14..d315264f 100644 --- a/releases/latest/full/Dockerfile.ubi.ibmjava8 +++ b/releases/latest/full/Dockerfile.ubi.ibmjava8 @@ -91,7 +91,7 @@ RUN adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ COPY --from=getRuntime --chown=1001:0 /opt/ol/wlp /opt/ol/wlp COPY --from=getRuntime /licenses /licenses -RUN yum -y install wget openssl \ +RUN yum -y install openssl \ && yum clean all # Set Path Shortcuts diff --git a/releases/latest/full/Dockerfile.ubi.openjdk11 b/releases/latest/full/Dockerfile.ubi.openjdk11 index 31689d2f..c803d5e3 100644 --- a/releases/latest/full/Dockerfile.ubi.openjdk11 +++ b/releases/latest/full/Dockerfile.ubi.openjdk11 @@ -91,7 +91,7 @@ RUN adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ COPY --from=getRuntime --chown=1001:0 /opt/ol/wlp /opt/ol/wlp COPY --from=getRuntime /licenses /licenses -RUN yum -y install wget openssl \ +RUN yum -y install openssl \ && yum clean all # Set Path Shortcuts diff --git a/releases/latest/full/Dockerfile.ubi.openjdk17 b/releases/latest/full/Dockerfile.ubi.openjdk17 index 1da85b47..2738af45 100644 --- a/releases/latest/full/Dockerfile.ubi.openjdk17 +++ b/releases/latest/full/Dockerfile.ubi.openjdk17 @@ -91,7 +91,7 @@ RUN adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ COPY --from=getRuntime --chown=1001:0 /opt/ol/wlp /opt/ol/wlp COPY --from=getRuntime /licenses /licenses -RUN yum -y install wget openssl \ +RUN yum -y install openssl \ && yum clean all # Set Path Shortcuts diff --git a/releases/latest/full/Dockerfile.ubi.openjdk8 b/releases/latest/full/Dockerfile.ubi.openjdk8 index dcd19b76..d34bd11f 100644 --- a/releases/latest/full/Dockerfile.ubi.openjdk8 +++ b/releases/latest/full/Dockerfile.ubi.openjdk8 @@ -91,7 +91,7 @@ RUN adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ COPY --from=getRuntime --chown=1001:0 /opt/ol/wlp /opt/ol/wlp COPY --from=getRuntime /licenses /licenses -RUN yum -y install wget openssl \ +RUN yum -y install openssl \ && yum clean all # Set Path Shortcuts diff --git a/releases/latest/full/helpers/build/populate_scc.sh b/releases/latest/full/helpers/build/populate_scc.sh index 1c4cae57..0e4e99cf 100755 --- a/releases/latest/full/helpers/build/populate_scc.sh +++ b/releases/latest/full/helpers/build/populate_scc.sh @@ -105,6 +105,13 @@ done OLD_UMASK=`umask` umask 002 # 002 is required to provide group rw permission to the cache when `-Xshareclasses:groupAccess` options is used +# Use curl if available, otherwise use wget +if command -v curl > /dev/null 2>&1; then + http_get() { curl --silent --output /dev/null --show-error --fail --max-time 5 "$1"; } +else + http_get() { wget -q -O /dev/null -T 5 "$1"; } +fi + # Explicity create a class cache layer for this image layer here rather than allowing # `server start` to do it, which will lead to problems because multiple JVMs will be started. java $CREATE_LAYER -Xscmx$SCC_SIZE -version @@ -117,11 +124,11 @@ then if [ ${WARM_ENDPOINT} == true ] then - wget -q -O /dev/null -T 5 ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing" + http_get ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing" fi if [ ${WARM_OPENAPI_ENDPOINT} == true ] then - wget -q -O /dev/null -T 5 ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing" + http_get ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing" fi /opt/ol/wlp/bin/server stop @@ -152,11 +159,11 @@ do if [ ${WARM_ENDPOINT} == true ] then - wget -q -O /dev/null -T 5 ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing" + http_get ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing" fi if [ ${WARM_OPENAPI_ENDPOINT} == true ] then - wget -q -O /dev/null -T 5 ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing" + http_get ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing" fi /opt/ol/wlp/bin/server stop diff --git a/releases/latest/kernel-slim/Dockerfile.ubi.ibmjava8 b/releases/latest/kernel-slim/Dockerfile.ubi.ibmjava8 index 10dd850e..3b306bc4 100644 --- a/releases/latest/kernel-slim/Dockerfile.ubi.ibmjava8 +++ b/releases/latest/kernel-slim/Dockerfile.ubi.ibmjava8 @@ -91,7 +91,7 @@ RUN adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ COPY --from=getRuntime --chown=1001:0 /opt/ol/wlp /opt/ol/wlp COPY --from=getRuntime /licenses /licenses -RUN yum -y install wget openssl \ +RUN yum -y install openssl \ && yum clean all # Set Path Shortcuts diff --git a/releases/latest/kernel-slim/Dockerfile.ubi.openjdk11 b/releases/latest/kernel-slim/Dockerfile.ubi.openjdk11 index 5eac6d6f..7a261197 100644 --- a/releases/latest/kernel-slim/Dockerfile.ubi.openjdk11 +++ b/releases/latest/kernel-slim/Dockerfile.ubi.openjdk11 @@ -91,7 +91,7 @@ RUN adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ COPY --from=getRuntime --chown=1001:0 /opt/ol/wlp /opt/ol/wlp COPY --from=getRuntime /licenses /licenses -RUN yum -y install wget openssl \ +RUN yum -y install openssl \ && yum clean all # Set Path Shortcuts diff --git a/releases/latest/kernel-slim/Dockerfile.ubi.openjdk17 b/releases/latest/kernel-slim/Dockerfile.ubi.openjdk17 index 480fbfd7..93730853 100644 --- a/releases/latest/kernel-slim/Dockerfile.ubi.openjdk17 +++ b/releases/latest/kernel-slim/Dockerfile.ubi.openjdk17 @@ -91,7 +91,7 @@ RUN adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ COPY --from=getRuntime --chown=1001:0 /opt/ol/wlp /opt/ol/wlp COPY --from=getRuntime /licenses /licenses -RUN yum -y install wget openssl \ +RUN yum -y install openssl \ && yum clean all # Set Path Shortcuts diff --git a/releases/latest/kernel-slim/Dockerfile.ubi.openjdk8 b/releases/latest/kernel-slim/Dockerfile.ubi.openjdk8 index 6d9b54b5..583f14d9 100644 --- a/releases/latest/kernel-slim/Dockerfile.ubi.openjdk8 +++ b/releases/latest/kernel-slim/Dockerfile.ubi.openjdk8 @@ -91,7 +91,7 @@ RUN adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ COPY --from=getRuntime --chown=1001:0 /opt/ol/wlp /opt/ol/wlp COPY --from=getRuntime /licenses /licenses -RUN yum -y install wget openssl \ +RUN yum -y install openssl \ && yum clean all # Set Path Shortcuts diff --git a/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.ibmjava8 b/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.ibmjava8 index 521714aa..89421ece 100644 --- a/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.ibmjava8 +++ b/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.ibmjava8 @@ -91,7 +91,7 @@ RUN set -eux; \ chmod +x /usr/bin/dumb-init; # Add default user 1001 and create wlp with right user/permissions before copying -RUN microdnf -y install shadow-utils findutils wget openssl \ +RUN microdnf -y install shadow-utils findutils openssl \ # && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ && mkdir -p /opt/ol/wlp \ && chown -R 1001:0 /opt/ol/wlp \ diff --git a/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk11 b/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk11 index d2274db1..6c4e4ced 100644 --- a/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk11 +++ b/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk11 @@ -82,7 +82,7 @@ RUN set -eux; \ chmod +x /usr/bin/dumb-init; # Add default user 1001 and create wlp with right user/permissions before copying -RUN microdnf -y install shadow-utils findutils wget openssl \ +RUN microdnf -y install shadow-utils findutils openssl \ && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ && mkdir -p /opt/ol/wlp \ && chown -R 1001:0 /opt/ol/wlp \ diff --git a/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk17 b/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk17 index 468644be..a36ca946 100644 --- a/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk17 +++ b/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk17 @@ -82,7 +82,7 @@ RUN set -eux; \ chmod +x /usr/bin/dumb-init; # Add default user 1001 and create wlp with right user/permissions before copying -RUN microdnf -y install shadow-utils findutils wget openssl \ +RUN microdnf -y install shadow-utils findutils openssl \ && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ && mkdir -p /opt/ol/wlp \ && chown -R 1001:0 /opt/ol/wlp \ diff --git a/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk21 b/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk21 index 6eff2bc0..8cb2feff 100644 --- a/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk21 +++ b/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk21 @@ -82,7 +82,7 @@ RUN set -eux; \ chmod +x /usr/bin/dumb-init; # Add default user 1001 and create wlp with right user/permissions before copying -RUN microdnf -y install shadow-utils findutils wget openssl \ +RUN microdnf -y install shadow-utils findutils openssl \ && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ && mkdir -p /opt/ol/wlp \ && chown -R 1001:0 /opt/ol/wlp \ diff --git a/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk25 b/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk25 index 2aa2210c..3a8cf702 100644 --- a/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk25 +++ b/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk25 @@ -82,7 +82,7 @@ RUN set -eux; \ chmod +x /usr/bin/dumb-init; # Add default user 1001 and create wlp with right user/permissions before copying -RUN microdnf -y install shadow-utils findutils wget openssl \ +RUN microdnf -y install shadow-utils findutils openssl \ && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ && mkdir -p /opt/ol/wlp \ && chown -R 1001:0 /opt/ol/wlp \ diff --git a/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk8 b/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk8 index 19333c70..8428da84 100644 --- a/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk8 +++ b/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk8 @@ -82,7 +82,7 @@ RUN set -eux; \ chmod +x /usr/bin/dumb-init; # Add default user 1001 and create wlp with right user/permissions before copying -RUN microdnf -y install shadow-utils findutils wget openssl \ +RUN microdnf -y install shadow-utils findutils openssl \ && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ && mkdir -p /opt/ol/wlp \ && chown -R 1001:0 /opt/ol/wlp \ diff --git a/releases/latest/kernel-slim/helpers/build/populate_scc.sh b/releases/latest/kernel-slim/helpers/build/populate_scc.sh index 1c4cae57..0e4e99cf 100755 --- a/releases/latest/kernel-slim/helpers/build/populate_scc.sh +++ b/releases/latest/kernel-slim/helpers/build/populate_scc.sh @@ -105,6 +105,13 @@ done OLD_UMASK=`umask` umask 002 # 002 is required to provide group rw permission to the cache when `-Xshareclasses:groupAccess` options is used +# Use curl if available, otherwise use wget +if command -v curl > /dev/null 2>&1; then + http_get() { curl --silent --output /dev/null --show-error --fail --max-time 5 "$1"; } +else + http_get() { wget -q -O /dev/null -T 5 "$1"; } +fi + # Explicity create a class cache layer for this image layer here rather than allowing # `server start` to do it, which will lead to problems because multiple JVMs will be started. java $CREATE_LAYER -Xscmx$SCC_SIZE -version @@ -117,11 +124,11 @@ then if [ ${WARM_ENDPOINT} == true ] then - wget -q -O /dev/null -T 5 ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing" + http_get ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing" fi if [ ${WARM_OPENAPI_ENDPOINT} == true ] then - wget -q -O /dev/null -T 5 ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing" + http_get ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing" fi /opt/ol/wlp/bin/server stop @@ -152,11 +159,11 @@ do if [ ${WARM_ENDPOINT} == true ] then - wget -q -O /dev/null -T 5 ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing" + http_get ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing" fi if [ ${WARM_OPENAPI_ENDPOINT} == true ] then - wget -q -O /dev/null -T 5 ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing" + http_get ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing" fi /opt/ol/wlp/bin/server stop From f9bce904fc5eeb85cd8c913fddcc08d3467d097a Mon Sep 17 00:00:00 2001 From: Melissa Lee Date: Fri, 14 Aug 2026 13:32:44 -0400 Subject: [PATCH 08/14] Update comment --- releases/26.0.0.8/kernel-slim/helpers/build/populate_scc.sh | 6 +++--- releases/latest/beta/helpers/build/populate_scc.sh | 6 +++--- releases/latest/full/helpers/build/populate_scc.sh | 6 +++--- releases/latest/kernel-slim/helpers/build/populate_scc.sh | 6 +++--- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/releases/26.0.0.8/kernel-slim/helpers/build/populate_scc.sh b/releases/26.0.0.8/kernel-slim/helpers/build/populate_scc.sh index 0e4e99cf..1c1fc7dd 100755 --- a/releases/26.0.0.8/kernel-slim/helpers/build/populate_scc.sh +++ b/releases/26.0.0.8/kernel-slim/helpers/build/populate_scc.sh @@ -81,10 +81,10 @@ do -s Size of the SCC in megabytes (m suffix required). (Default: $SCC_SIZE) -t Trim the SCC to eliminate most of the free space, if any. -d Don't trim the SCC. - -w Use wget to warm an endpoint during SCC creation. (Default: $WARM_ENDPOINT) + -w Use curl/wget to warm an endpoint during SCC creation. (Default: $WARM_ENDPOINT) -c Do not warm an endpoint during SCC creation. -u The URL endpoint to warm during SCC creation. (Default: $WARM_ENDPOINT_URL) - -m Use wget to warm the openapi endpoint during SCC creation. (Default: $WARM_OPENAPI_ENDPOINT) + -m Use curl/wget to warm the openapi endpoint during SCC creation. (Default: $WARM_OPENAPI_ENDPOINT) -l Do not warm the openapi endpoint during SCC creation. -o The Open API URL endpoint to warm during SCC creation. (Default: $WARM_ENDPOINT_OPENAPI_URL) @@ -105,7 +105,7 @@ done OLD_UMASK=`umask` umask 002 # 002 is required to provide group rw permission to the cache when `-Xshareclasses:groupAccess` options is used -# Use curl if available, otherwise use wget +# Use curl/wget to warm endpoints if command -v curl > /dev/null 2>&1; then http_get() { curl --silent --output /dev/null --show-error --fail --max-time 5 "$1"; } else diff --git a/releases/latest/beta/helpers/build/populate_scc.sh b/releases/latest/beta/helpers/build/populate_scc.sh index ac797145..98cd2038 100755 --- a/releases/latest/beta/helpers/build/populate_scc.sh +++ b/releases/latest/beta/helpers/build/populate_scc.sh @@ -76,10 +76,10 @@ do -s Size of the SCC in megabytes (m suffix required). (Default: $SCC_SIZE) -t Trim the SCC to eliminate most of the free space, if any. -d Don't trim the SCC. - -w Use wget to warm an endpoint during SCC creation. (Default: $WARM_ENDPOINT) + -w Use curl/wget to warm an endpoint during SCC creation. (Default: $WARM_ENDPOINT) -c Do not warm an endpoint during SCC creation. -u The URL endpoint to warm during SCC creation. (Default: $WARM_ENDPOINT_URL) - -m Use wget to warm the openapi endpoint during SCC creation. (Default: $WARM_OPENAPI_ENDPOINT) + -m Use curl/wget to warm the openapi endpoint during SCC creation. (Default: $WARM_OPENAPI_ENDPOINT) -l Do not warm the openapi endpoint during SCC creation. -o The Open API URL endpoint to warm during SCC creation. (Default: $WARM_ENDPOINT_OPENAPI_URL) @@ -100,7 +100,7 @@ done OLD_UMASK=`umask` umask 002 # 002 is required to provide group rw permission to the cache when `-Xshareclasses:groupAccess` options is used -# Use curl if available, otherwise use wget +# Use curl/wget to warm endpoints if command -v curl > /dev/null 2>&1; then http_get() { curl --silent --output /dev/null --show-error --fail --max-time 5 "$1"; } else diff --git a/releases/latest/full/helpers/build/populate_scc.sh b/releases/latest/full/helpers/build/populate_scc.sh index 0e4e99cf..1c1fc7dd 100755 --- a/releases/latest/full/helpers/build/populate_scc.sh +++ b/releases/latest/full/helpers/build/populate_scc.sh @@ -81,10 +81,10 @@ do -s Size of the SCC in megabytes (m suffix required). (Default: $SCC_SIZE) -t Trim the SCC to eliminate most of the free space, if any. -d Don't trim the SCC. - -w Use wget to warm an endpoint during SCC creation. (Default: $WARM_ENDPOINT) + -w Use curl/wget to warm an endpoint during SCC creation. (Default: $WARM_ENDPOINT) -c Do not warm an endpoint during SCC creation. -u The URL endpoint to warm during SCC creation. (Default: $WARM_ENDPOINT_URL) - -m Use wget to warm the openapi endpoint during SCC creation. (Default: $WARM_OPENAPI_ENDPOINT) + -m Use curl/wget to warm the openapi endpoint during SCC creation. (Default: $WARM_OPENAPI_ENDPOINT) -l Do not warm the openapi endpoint during SCC creation. -o The Open API URL endpoint to warm during SCC creation. (Default: $WARM_ENDPOINT_OPENAPI_URL) @@ -105,7 +105,7 @@ done OLD_UMASK=`umask` umask 002 # 002 is required to provide group rw permission to the cache when `-Xshareclasses:groupAccess` options is used -# Use curl if available, otherwise use wget +# Use curl/wget to warm endpoints if command -v curl > /dev/null 2>&1; then http_get() { curl --silent --output /dev/null --show-error --fail --max-time 5 "$1"; } else diff --git a/releases/latest/kernel-slim/helpers/build/populate_scc.sh b/releases/latest/kernel-slim/helpers/build/populate_scc.sh index 0e4e99cf..1c1fc7dd 100755 --- a/releases/latest/kernel-slim/helpers/build/populate_scc.sh +++ b/releases/latest/kernel-slim/helpers/build/populate_scc.sh @@ -81,10 +81,10 @@ do -s Size of the SCC in megabytes (m suffix required). (Default: $SCC_SIZE) -t Trim the SCC to eliminate most of the free space, if any. -d Don't trim the SCC. - -w Use wget to warm an endpoint during SCC creation. (Default: $WARM_ENDPOINT) + -w Use curl/wget to warm an endpoint during SCC creation. (Default: $WARM_ENDPOINT) -c Do not warm an endpoint during SCC creation. -u The URL endpoint to warm during SCC creation. (Default: $WARM_ENDPOINT_URL) - -m Use wget to warm the openapi endpoint during SCC creation. (Default: $WARM_OPENAPI_ENDPOINT) + -m Use curl/wget to warm the openapi endpoint during SCC creation. (Default: $WARM_OPENAPI_ENDPOINT) -l Do not warm the openapi endpoint during SCC creation. -o The Open API URL endpoint to warm during SCC creation. (Default: $WARM_ENDPOINT_OPENAPI_URL) @@ -105,7 +105,7 @@ done OLD_UMASK=`umask` umask 002 # 002 is required to provide group rw permission to the cache when `-Xshareclasses:groupAccess` options is used -# Use curl if available, otherwise use wget +# Use curl/wget to warm endpoints if command -v curl > /dev/null 2>&1; then http_get() { curl --silent --output /dev/null --show-error --fail --max-time 5 "$1"; } else From 33f2f2d97eb0aad6ef0f43509aa96aaa536d24a5 Mon Sep 17 00:00:00 2001 From: Melissa Lee Date: Fri, 14 Aug 2026 14:39:11 -0400 Subject: [PATCH 09/14] Add libs for ibmjava --- releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.ibmjava8 | 4 ++++ releases/latest/kernel-slim/Dockerfile.ubi10-micro.ibmjava8 | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.ibmjava8 b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.ibmjava8 index bc42e64d..a561d267 100644 --- a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.ibmjava8 +++ b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.ibmjava8 @@ -105,6 +105,10 @@ COPY --from=builder /usr/bin/wget /usr/bin/wget COPY --from=builder /usr/lib64/libpsl.so* /usr/lib64/ COPY --from=builder /usr/lib64/libmpfr.so* /usr/lib64/ COPY --from=builder /usr/lib64/libreadline.so* /usr/lib64/ +COPY --from=builder /usr/lib64/libgnutls.so* /usr/lib64/ +COPY --from=builder /usr/lib64/libidn2.so* /usr/lib64/ +COPY --from=builder /usr/lib64/libunistring.so* /usr/lib64/ +COPY --from=builder /usr/lib64/libuuid.so* /usr/lib64/ # Copy the runtime and licenses COPY --from=builder --chown=1001:0 /opt/ol/wlp /opt/ol/wlp diff --git a/releases/latest/kernel-slim/Dockerfile.ubi10-micro.ibmjava8 b/releases/latest/kernel-slim/Dockerfile.ubi10-micro.ibmjava8 index bc42e64d..a561d267 100644 --- a/releases/latest/kernel-slim/Dockerfile.ubi10-micro.ibmjava8 +++ b/releases/latest/kernel-slim/Dockerfile.ubi10-micro.ibmjava8 @@ -105,6 +105,10 @@ COPY --from=builder /usr/bin/wget /usr/bin/wget COPY --from=builder /usr/lib64/libpsl.so* /usr/lib64/ COPY --from=builder /usr/lib64/libmpfr.so* /usr/lib64/ COPY --from=builder /usr/lib64/libreadline.so* /usr/lib64/ +COPY --from=builder /usr/lib64/libgnutls.so* /usr/lib64/ +COPY --from=builder /usr/lib64/libidn2.so* /usr/lib64/ +COPY --from=builder /usr/lib64/libunistring.so* /usr/lib64/ +COPY --from=builder /usr/lib64/libuuid.so* /usr/lib64/ # Copy the runtime and licenses COPY --from=builder --chown=1001:0 /opt/ol/wlp /opt/ol/wlp From 69d4a992bdd642799047f54f6fe57f22f059dd50 Mon Sep 17 00:00:00 2001 From: Melissa Lee Date: Mon, 17 Aug 2026 09:48:05 -0400 Subject: [PATCH 10/14] Add unzip and replace crul --- releases/26.0.0.8/full/Dockerfile.ubi10-micro.ibmjava8 | 10 +++++++--- .../26.0.0.8/full/Dockerfile.ubi10-micro.openjdk11 | 10 +++++++--- .../26.0.0.8/full/Dockerfile.ubi10-micro.openjdk17 | 10 +++++++--- .../26.0.0.8/full/Dockerfile.ubi10-micro.openjdk21 | 10 +++++++--- .../26.0.0.8/full/Dockerfile.ubi10-micro.openjdk25 | 10 +++++++--- releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk8 | 10 +++++++--- 6 files changed, 42 insertions(+), 18 deletions(-) diff --git a/releases/26.0.0.8/full/Dockerfile.ubi10-micro.ibmjava8 b/releases/26.0.0.8/full/Dockerfile.ubi10-micro.ibmjava8 index 5b02ac37..123c0b93 100644 --- a/releases/26.0.0.8/full/Dockerfile.ubi10-micro.ibmjava8 +++ b/releases/26.0.0.8/full/Dockerfile.ubi10-micro.ibmjava8 @@ -1,5 +1,9 @@ ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:26.0.0.8-kernel-slim-java8-ibmjava-ubi-micro +# ubi-micro has no package manager; install unzip from ubi-minimal and copy it in +FROM registry.access.redhat.com/ubi10/ubi-minimal AS builder +RUN microdnf -y install unzip && microdnf clean all + FROM $PARENT_IMAGE AS installBundle ARG VERBOSE=false @@ -9,15 +13,15 @@ ARG FEATURES_SHA=534d4f1b2b8cf34903b36f6e3780915f82a35419 # If there is a local copy of the repository use that instead COPY resources/ /tmp/ -# We need unzip when using a local repo +# We need unzip when using a local repo; copy it from ubi-minimal builder stage USER root -RUN microdnf -y install unzip +COPY --from=builder /usr/bin/unzip /usr/bin/unzip USER 1001 # Install all features RUN set -eux; \ if [ ! -f /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip ]; then \ - curl https://repo1.maven.org/maven2/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json > /tmp/features-$LIBERTY_VERSION.json; \ + wget -q https://repo1.maven.org/maven2/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json -O /tmp/features-$LIBERTY_VERSION.json; \ echo "$FEATURES_SHA /tmp/features-$LIBERTY_VERSION.json" > /tmp/features-$LIBERTY_VERSION.json.sha1; \ sha1sum -c /tmp/features-$LIBERTY_VERSION.json.sha1; \ else \ diff --git a/releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk11 b/releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk11 index 5211ef5a..0a73d85a 100644 --- a/releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk11 +++ b/releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk11 @@ -1,5 +1,9 @@ ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:26.0.0.8-kernel-slim-java11-openj9-ubi-micro +# ubi-micro has no package manager; install unzip from ubi-minimal and copy it in +FROM registry.access.redhat.com/ubi10/ubi-minimal AS builder +RUN microdnf -y install unzip && microdnf clean all + FROM $PARENT_IMAGE AS installBundle ARG VERBOSE=false @@ -9,15 +13,15 @@ ARG FEATURES_SHA=534d4f1b2b8cf34903b36f6e3780915f82a35419 # If there is a local copy of the repository use that instead COPY resources/ /tmp/ -# We need unzip when using a local repo +# We need unzip when using a local repo; copy it from ubi-minimal builder stage USER root -RUN microdnf -y install unzip +COPY --from=builder /usr/bin/unzip /usr/bin/unzip USER 1001 # Install all features RUN set -eux; \ if [ ! -f /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip ]; then \ - curl https://repo1.maven.org/maven2/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json > /tmp/features-$LIBERTY_VERSION.json; \ + wget -q https://repo1.maven.org/maven2/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json -O /tmp/features-$LIBERTY_VERSION.json; \ echo "$FEATURES_SHA /tmp/features-$LIBERTY_VERSION.json" > /tmp/features-$LIBERTY_VERSION.json.sha1; \ sha1sum -c /tmp/features-$LIBERTY_VERSION.json.sha1; \ else \ diff --git a/releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk17 b/releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk17 index ea00e5a3..58c8ef7a 100644 --- a/releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk17 +++ b/releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk17 @@ -1,5 +1,9 @@ ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:26.0.0.8-kernel-slim-java17-openj9-ubi-micro +# ubi-micro has no package manager; install unzip from ubi-minimal and copy it in +FROM registry.access.redhat.com/ubi10/ubi-minimal AS builder +RUN microdnf -y install unzip && microdnf clean all + FROM $PARENT_IMAGE AS installBundle ARG VERBOSE=false @@ -9,15 +13,15 @@ ARG FEATURES_SHA=534d4f1b2b8cf34903b36f6e3780915f82a35419 # If there is a local copy of the repository use that instead COPY resources/ /tmp/ -# We need unzip when using a local repo +# We need unzip when using a local repo; copy it from ubi-minimal builder stage USER root -RUN microdnf -y install unzip +COPY --from=builder /usr/bin/unzip /usr/bin/unzip USER 1001 # Install all features RUN set -eux; \ if [ ! -f /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip ]; then \ - curl https://repo1.maven.org/maven2/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json > /tmp/features-$LIBERTY_VERSION.json; \ + wget -q https://repo1.maven.org/maven2/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json -O /tmp/features-$LIBERTY_VERSION.json; \ echo "$FEATURES_SHA /tmp/features-$LIBERTY_VERSION.json" > /tmp/features-$LIBERTY_VERSION.json.sha1; \ sha1sum -c /tmp/features-$LIBERTY_VERSION.json.sha1; \ else \ diff --git a/releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk21 b/releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk21 index 79ebab9a..95f2543c 100644 --- a/releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk21 +++ b/releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk21 @@ -1,5 +1,9 @@ ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:26.0.0.8-kernel-slim-java21-openj9-ubi-micro +# ubi-micro has no package manager; install unzip from ubi-minimal and copy it in +FROM registry.access.redhat.com/ubi10/ubi-minimal AS builder +RUN microdnf -y install unzip && microdnf clean all + FROM $PARENT_IMAGE AS installBundle ARG VERBOSE=false @@ -9,15 +13,15 @@ ARG FEATURES_SHA=534d4f1b2b8cf34903b36f6e3780915f82a35419 # If there is a local copy of the repository use that instead COPY resources/ /tmp/ -# We need unzip when using a local repo +# We need unzip when using a local repo; copy it from ubi-minimal builder stage USER root -RUN microdnf -y install unzip +COPY --from=builder /usr/bin/unzip /usr/bin/unzip USER 1001 # Install all features RUN set -eux; \ if [ ! -f /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip ]; then \ - curl https://repo1.maven.org/maven2/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json > /tmp/features-$LIBERTY_VERSION.json; \ + wget -q https://repo1.maven.org/maven2/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json -O /tmp/features-$LIBERTY_VERSION.json; \ echo "$FEATURES_SHA /tmp/features-$LIBERTY_VERSION.json" > /tmp/features-$LIBERTY_VERSION.json.sha1; \ sha1sum -c /tmp/features-$LIBERTY_VERSION.json.sha1; \ else \ diff --git a/releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk25 b/releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk25 index eb4a6a34..16d91394 100644 --- a/releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk25 +++ b/releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk25 @@ -1,5 +1,9 @@ ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:26.0.0.8-kernel-slim-java25-openj9-ubi-micro +# ubi-micro has no package manager; install unzip from ubi-minimal and copy it in +FROM registry.access.redhat.com/ubi10/ubi-minimal AS builder +RUN microdnf -y install unzip && microdnf clean all + FROM $PARENT_IMAGE AS installBundle ARG VERBOSE=false @@ -9,15 +13,15 @@ ARG FEATURES_SHA=534d4f1b2b8cf34903b36f6e3780915f82a35419 # If there is a local copy of the repository use that instead COPY resources/ /tmp/ -# We need unzip when using a local repo +# We need unzip when using a local repo; copy it from ubi-minimal builder stage USER root -RUN microdnf -y install unzip +COPY --from=builder /usr/bin/unzip /usr/bin/unzip USER 1001 # Install all features RUN set -eux; \ if [ ! -f /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip ]; then \ - curl https://repo1.maven.org/maven2/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json > /tmp/features-$LIBERTY_VERSION.json; \ + wget -q https://repo1.maven.org/maven2/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json -O /tmp/features-$LIBERTY_VERSION.json; \ echo "$FEATURES_SHA /tmp/features-$LIBERTY_VERSION.json" > /tmp/features-$LIBERTY_VERSION.json.sha1; \ sha1sum -c /tmp/features-$LIBERTY_VERSION.json.sha1; \ else \ diff --git a/releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk8 b/releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk8 index dee88865..6d3d51c4 100644 --- a/releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk8 +++ b/releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk8 @@ -1,5 +1,9 @@ ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:26.0.0.8-kernel-slim-java8-openj9-ubi-micro +# ubi-micro has no package manager; install unzip from ubi-minimal and copy it in +FROM registry.access.redhat.com/ubi10/ubi-minimal AS builder +RUN microdnf -y install unzip && microdnf clean all + FROM $PARENT_IMAGE AS installBundle ARG VERBOSE=false @@ -9,15 +13,15 @@ ARG FEATURES_SHA=534d4f1b2b8cf34903b36f6e3780915f82a35419 # If there is a local copy of the repository use that instead COPY resources/ /tmp/ -# We need unzip when using a local repo +# We need unzip when using a local repo; copy it from ubi-minimal builder stage USER root -RUN microdnf -y install unzip +COPY --from=builder /usr/bin/unzip /usr/bin/unzip USER 1001 # Install all features RUN set -eux; \ if [ ! -f /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip ]; then \ - curl https://repo1.maven.org/maven2/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json > /tmp/features-$LIBERTY_VERSION.json; \ + wget -q https://repo1.maven.org/maven2/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json -O /tmp/features-$LIBERTY_VERSION.json; \ echo "$FEATURES_SHA /tmp/features-$LIBERTY_VERSION.json" > /tmp/features-$LIBERTY_VERSION.json.sha1; \ sha1sum -c /tmp/features-$LIBERTY_VERSION.json.sha1; \ else \ From 7c9c7e2e3dd78d23c1843761c037e937a664e775 Mon Sep 17 00:00:00 2001 From: Melissa Lee Date: Mon, 17 Aug 2026 10:12:37 -0400 Subject: [PATCH 11/14] wget/curl changes in full --- .../full/helpers/build/populate_scc.sh | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/releases/26.0.0.8/full/helpers/build/populate_scc.sh b/releases/26.0.0.8/full/helpers/build/populate_scc.sh index 1c4cae57..1c1fc7dd 100755 --- a/releases/26.0.0.8/full/helpers/build/populate_scc.sh +++ b/releases/26.0.0.8/full/helpers/build/populate_scc.sh @@ -81,10 +81,10 @@ do -s Size of the SCC in megabytes (m suffix required). (Default: $SCC_SIZE) -t Trim the SCC to eliminate most of the free space, if any. -d Don't trim the SCC. - -w Use wget to warm an endpoint during SCC creation. (Default: $WARM_ENDPOINT) + -w Use curl/wget to warm an endpoint during SCC creation. (Default: $WARM_ENDPOINT) -c Do not warm an endpoint during SCC creation. -u The URL endpoint to warm during SCC creation. (Default: $WARM_ENDPOINT_URL) - -m Use wget to warm the openapi endpoint during SCC creation. (Default: $WARM_OPENAPI_ENDPOINT) + -m Use curl/wget to warm the openapi endpoint during SCC creation. (Default: $WARM_OPENAPI_ENDPOINT) -l Do not warm the openapi endpoint during SCC creation. -o The Open API URL endpoint to warm during SCC creation. (Default: $WARM_ENDPOINT_OPENAPI_URL) @@ -105,6 +105,13 @@ done OLD_UMASK=`umask` umask 002 # 002 is required to provide group rw permission to the cache when `-Xshareclasses:groupAccess` options is used +# Use curl/wget to warm endpoints +if command -v curl > /dev/null 2>&1; then + http_get() { curl --silent --output /dev/null --show-error --fail --max-time 5 "$1"; } +else + http_get() { wget -q -O /dev/null -T 5 "$1"; } +fi + # Explicity create a class cache layer for this image layer here rather than allowing # `server start` to do it, which will lead to problems because multiple JVMs will be started. java $CREATE_LAYER -Xscmx$SCC_SIZE -version @@ -117,11 +124,11 @@ then if [ ${WARM_ENDPOINT} == true ] then - wget -q -O /dev/null -T 5 ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing" + http_get ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing" fi if [ ${WARM_OPENAPI_ENDPOINT} == true ] then - wget -q -O /dev/null -T 5 ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing" + http_get ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing" fi /opt/ol/wlp/bin/server stop @@ -152,11 +159,11 @@ do if [ ${WARM_ENDPOINT} == true ] then - wget -q -O /dev/null -T 5 ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing" + http_get ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing" fi if [ ${WARM_OPENAPI_ENDPOINT} == true ] then - wget -q -O /dev/null -T 5 ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing" + http_get ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing" fi /opt/ol/wlp/bin/server stop From 08838969d3f68ab00542b5a06910a526066a8fd3 Mon Sep 17 00:00:00 2001 From: Melissa Lee Date: Mon, 17 Aug 2026 10:29:55 -0400 Subject: [PATCH 12/14] Add unzip and wget fix for latest full --- releases/latest/full/Dockerfile.ubi10-micro.ibmjava8 | 10 +++++++--- releases/latest/full/Dockerfile.ubi10-micro.openjdk11 | 10 +++++++--- releases/latest/full/Dockerfile.ubi10-micro.openjdk17 | 10 +++++++--- releases/latest/full/Dockerfile.ubi10-micro.openjdk21 | 10 +++++++--- releases/latest/full/Dockerfile.ubi10-micro.openjdk25 | 10 +++++++--- releases/latest/full/Dockerfile.ubi10-micro.openjdk8 | 10 +++++++--- 6 files changed, 42 insertions(+), 18 deletions(-) diff --git a/releases/latest/full/Dockerfile.ubi10-micro.ibmjava8 b/releases/latest/full/Dockerfile.ubi10-micro.ibmjava8 index 584359bb..1d296b3c 100644 --- a/releases/latest/full/Dockerfile.ubi10-micro.ibmjava8 +++ b/releases/latest/full/Dockerfile.ubi10-micro.ibmjava8 @@ -1,5 +1,9 @@ ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:kernel-slim-java8-ibmjava-ubi-micro +# ubi-micro has no package manager; install unzip from ubi-minimal and copy it in +FROM registry.access.redhat.com/ubi10/ubi-minimal AS builder +RUN microdnf -y install unzip && microdnf clean all + FROM $PARENT_IMAGE AS installBundle ARG VERBOSE=false @@ -9,15 +13,15 @@ ARG FEATURES_SHA=534d4f1b2b8cf34903b36f6e3780915f82a35419 # If there is a local copy of the repository use that instead COPY resources/ /tmp/ -# We need unzip when using a local repo +# We need unzip when using a local repo; copy it from ubi-minimal builder stage USER root -RUN microdnf -y install unzip +COPY --from=builder /usr/bin/unzip /usr/bin/unzip USER 1001 # Install all features RUN set -eux; \ if [ ! -f /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip ]; then \ - curl https://repo1.maven.org/maven2/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json > /tmp/features-$LIBERTY_VERSION.json; \ + wget -q https://repo1.maven.org/maven2/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json -O /tmp/features-$LIBERTY_VERSION.json; \ echo "$FEATURES_SHA /tmp/features-$LIBERTY_VERSION.json" > /tmp/features-$LIBERTY_VERSION.json.sha1; \ sha1sum -c /tmp/features-$LIBERTY_VERSION.json.sha1; \ else \ diff --git a/releases/latest/full/Dockerfile.ubi10-micro.openjdk11 b/releases/latest/full/Dockerfile.ubi10-micro.openjdk11 index 2ead6939..46d2fd5e 100644 --- a/releases/latest/full/Dockerfile.ubi10-micro.openjdk11 +++ b/releases/latest/full/Dockerfile.ubi10-micro.openjdk11 @@ -1,5 +1,9 @@ ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:kernel-slim-java11-openj9-ubi-micro +# ubi-micro has no package manager; install unzip from ubi-minimal and copy it in +FROM registry.access.redhat.com/ubi10/ubi-minimal AS builder +RUN microdnf -y install unzip && microdnf clean all + FROM $PARENT_IMAGE AS installBundle ARG VERBOSE=false @@ -9,15 +13,15 @@ ARG FEATURES_SHA=534d4f1b2b8cf34903b36f6e3780915f82a35419 # If there is a local copy of the repository use that instead COPY resources/ /tmp/ -# We need unzip when using a local repo +# We need unzip when using a local repo; copy it from ubi-minimal builder stage USER root -RUN microdnf -y install unzip +COPY --from=builder /usr/bin/unzip /usr/bin/unzip USER 1001 # Install all features RUN set -eux; \ if [ ! -f /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip ]; then \ - curl https://repo1.maven.org/maven2/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json > /tmp/features-$LIBERTY_VERSION.json; \ + wget -q https://repo1.maven.org/maven2/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json -O /tmp/features-$LIBERTY_VERSION.json; \ echo "$FEATURES_SHA /tmp/features-$LIBERTY_VERSION.json" > /tmp/features-$LIBERTY_VERSION.json.sha1; \ sha1sum -c /tmp/features-$LIBERTY_VERSION.json.sha1; \ else \ diff --git a/releases/latest/full/Dockerfile.ubi10-micro.openjdk17 b/releases/latest/full/Dockerfile.ubi10-micro.openjdk17 index d4b7327e..1871ec06 100644 --- a/releases/latest/full/Dockerfile.ubi10-micro.openjdk17 +++ b/releases/latest/full/Dockerfile.ubi10-micro.openjdk17 @@ -1,5 +1,9 @@ ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:kernel-slim-java17-openj9-ubi-micro +# ubi-micro has no package manager; install unzip from ubi-minimal and copy it in +FROM registry.access.redhat.com/ubi10/ubi-minimal AS builder +RUN microdnf -y install unzip && microdnf clean all + FROM $PARENT_IMAGE AS installBundle ARG VERBOSE=false @@ -9,15 +13,15 @@ ARG FEATURES_SHA=534d4f1b2b8cf34903b36f6e3780915f82a35419 # If there is a local copy of the repository use that instead COPY resources/ /tmp/ -# We need unzip when using a local repo +# We need unzip when using a local repo; copy it from ubi-minimal builder stage USER root -RUN microdnf -y install unzip +COPY --from=builder /usr/bin/unzip /usr/bin/unzip USER 1001 # Install all features RUN set -eux; \ if [ ! -f /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip ]; then \ - curl https://repo1.maven.org/maven2/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json > /tmp/features-$LIBERTY_VERSION.json; \ + wget -q https://repo1.maven.org/maven2/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json -O /tmp/features-$LIBERTY_VERSION.json; \ echo "$FEATURES_SHA /tmp/features-$LIBERTY_VERSION.json" > /tmp/features-$LIBERTY_VERSION.json.sha1; \ sha1sum -c /tmp/features-$LIBERTY_VERSION.json.sha1; \ else \ diff --git a/releases/latest/full/Dockerfile.ubi10-micro.openjdk21 b/releases/latest/full/Dockerfile.ubi10-micro.openjdk21 index 6eca90ac..eac128af 100644 --- a/releases/latest/full/Dockerfile.ubi10-micro.openjdk21 +++ b/releases/latest/full/Dockerfile.ubi10-micro.openjdk21 @@ -1,5 +1,9 @@ ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:kernel-slim-java21-openj9-ubi-micro +# ubi-micro has no package manager; install unzip from ubi-minimal and copy it in +FROM registry.access.redhat.com/ubi10/ubi-minimal AS builder +RUN microdnf -y install unzip && microdnf clean all + FROM $PARENT_IMAGE AS installBundle ARG VERBOSE=false @@ -9,15 +13,15 @@ ARG FEATURES_SHA=534d4f1b2b8cf34903b36f6e3780915f82a35419 # If there is a local copy of the repository use that instead COPY resources/ /tmp/ -# We need unzip when using a local repo +# We need unzip when using a local repo; copy it from ubi-minimal builder stage USER root -RUN microdnf -y install unzip +COPY --from=builder /usr/bin/unzip /usr/bin/unzip USER 1001 # Install all features RUN set -eux; \ if [ ! -f /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip ]; then \ - curl https://repo1.maven.org/maven2/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json > /tmp/features-$LIBERTY_VERSION.json; \ + wget -q https://repo1.maven.org/maven2/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json -O /tmp/features-$LIBERTY_VERSION.json; \ echo "$FEATURES_SHA /tmp/features-$LIBERTY_VERSION.json" > /tmp/features-$LIBERTY_VERSION.json.sha1; \ sha1sum -c /tmp/features-$LIBERTY_VERSION.json.sha1; \ else \ diff --git a/releases/latest/full/Dockerfile.ubi10-micro.openjdk25 b/releases/latest/full/Dockerfile.ubi10-micro.openjdk25 index b16191a6..3f66836e 100644 --- a/releases/latest/full/Dockerfile.ubi10-micro.openjdk25 +++ b/releases/latest/full/Dockerfile.ubi10-micro.openjdk25 @@ -1,5 +1,9 @@ ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:kernel-slim-java25-openj9-ubi-micro +# ubi-micro has no package manager; install unzip from ubi-minimal and copy it in +FROM registry.access.redhat.com/ubi10/ubi-minimal AS builder +RUN microdnf -y install unzip && microdnf clean all + FROM $PARENT_IMAGE AS installBundle ARG VERBOSE=false @@ -9,15 +13,15 @@ ARG FEATURES_SHA=534d4f1b2b8cf34903b36f6e3780915f82a35419 # If there is a local copy of the repository use that instead COPY resources/ /tmp/ -# We need unzip when using a local repo +# We need unzip when using a local repo; copy it from ubi-minimal builder stage USER root -RUN microdnf -y install unzip +COPY --from=builder /usr/bin/unzip /usr/bin/unzip USER 1001 # Install all features RUN set -eux; \ if [ ! -f /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip ]; then \ - curl https://repo1.maven.org/maven2/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json > /tmp/features-$LIBERTY_VERSION.json; \ + wget -q https://repo1.maven.org/maven2/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json -O /tmp/features-$LIBERTY_VERSION.json; \ echo "$FEATURES_SHA /tmp/features-$LIBERTY_VERSION.json" > /tmp/features-$LIBERTY_VERSION.json.sha1; \ sha1sum -c /tmp/features-$LIBERTY_VERSION.json.sha1; \ else \ diff --git a/releases/latest/full/Dockerfile.ubi10-micro.openjdk8 b/releases/latest/full/Dockerfile.ubi10-micro.openjdk8 index ef1788e2..7981956a 100644 --- a/releases/latest/full/Dockerfile.ubi10-micro.openjdk8 +++ b/releases/latest/full/Dockerfile.ubi10-micro.openjdk8 @@ -1,5 +1,9 @@ ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:kernel-slim-java8-openj9-ubi-micro +# ubi-micro has no package manager; install unzip from ubi-minimal and copy it in +FROM registry.access.redhat.com/ubi10/ubi-minimal AS builder +RUN microdnf -y install unzip && microdnf clean all + FROM $PARENT_IMAGE AS installBundle ARG VERBOSE=false @@ -9,15 +13,15 @@ ARG FEATURES_SHA=534d4f1b2b8cf34903b36f6e3780915f82a35419 # If there is a local copy of the repository use that instead COPY resources/ /tmp/ -# We need unzip when using a local repo +# We need unzip when using a local repo; copy it from ubi-minimal builder stage USER root -RUN microdnf -y install unzip +COPY --from=builder /usr/bin/unzip /usr/bin/unzip USER 1001 # Install all features RUN set -eux; \ if [ ! -f /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip ]; then \ - curl https://repo1.maven.org/maven2/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json > /tmp/features-$LIBERTY_VERSION.json; \ + wget -q https://repo1.maven.org/maven2/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json -O /tmp/features-$LIBERTY_VERSION.json; \ echo "$FEATURES_SHA /tmp/features-$LIBERTY_VERSION.json" > /tmp/features-$LIBERTY_VERSION.json.sha1; \ sha1sum -c /tmp/features-$LIBERTY_VERSION.json.sha1; \ else \ From ff9f2acafe7df1ddc33ebe5b1f4bad61ba6e9c17 Mon Sep 17 00:00:00 2001 From: Melissa Lee Date: Mon, 17 Aug 2026 17:42:37 -0400 Subject: [PATCH 13/14] Add unzip dependency --- releases/26.0.0.8/full/Dockerfile.ubi10-micro.ibmjava8 | 1 + releases/latest/full/Dockerfile.ubi10-micro.ibmjava8 | 1 + 2 files changed, 2 insertions(+) diff --git a/releases/26.0.0.8/full/Dockerfile.ubi10-micro.ibmjava8 b/releases/26.0.0.8/full/Dockerfile.ubi10-micro.ibmjava8 index 123c0b93..58860ea0 100644 --- a/releases/26.0.0.8/full/Dockerfile.ubi10-micro.ibmjava8 +++ b/releases/26.0.0.8/full/Dockerfile.ubi10-micro.ibmjava8 @@ -16,6 +16,7 @@ COPY resources/ /tmp/ # We need unzip when using a local repo; copy it from ubi-minimal builder stage USER root COPY --from=builder /usr/bin/unzip /usr/bin/unzip +COPY --from=builder /usr/lib64/libbz2.so* /usr/lib64/ USER 1001 # Install all features diff --git a/releases/latest/full/Dockerfile.ubi10-micro.ibmjava8 b/releases/latest/full/Dockerfile.ubi10-micro.ibmjava8 index 1d296b3c..1da744d9 100644 --- a/releases/latest/full/Dockerfile.ubi10-micro.ibmjava8 +++ b/releases/latest/full/Dockerfile.ubi10-micro.ibmjava8 @@ -16,6 +16,7 @@ COPY resources/ /tmp/ # We need unzip when using a local repo; copy it from ubi-minimal builder stage USER root COPY --from=builder /usr/bin/unzip /usr/bin/unzip +COPY --from=builder /usr/lib64/libbz2.so* /usr/lib64/ USER 1001 # Install all features From 6b4ac987f43c261a99ff472b38e66acd7397a68b Mon Sep 17 00:00:00 2001 From: Melissa Lee Date: Tue, 18 Aug 2026 10:44:38 -0400 Subject: [PATCH 14/14] Restore changes to 26.0.0.8 and change ibmjava micro base image --- .../full/Dockerfile.ubi10-micro.ibmjava8 | 53 ------ .../full/Dockerfile.ubi10-micro.openjdk11 | 52 ----- .../full/Dockerfile.ubi10-micro.openjdk17 | 52 ----- .../full/Dockerfile.ubi10-micro.openjdk21 | 52 ----- .../full/Dockerfile.ubi10-micro.openjdk25 | 52 ----- .../full/Dockerfile.ubi10-micro.openjdk8 | 52 ----- .../full/helpers/build/populate_scc.sh | 19 +- .../Dockerfile.ubi10-micro.ibmjava8 | 177 ------------------ .../Dockerfile.ubi10-micro.openjdk11 | 164 ---------------- .../Dockerfile.ubi10-micro.openjdk17 | 164 ---------------- .../Dockerfile.ubi10-micro.openjdk21 | 164 ---------------- .../Dockerfile.ubi10-micro.openjdk25 | 164 ---------------- .../Dockerfile.ubi10-micro.openjdk8 | 164 ---------------- .../kernel-slim/helpers/build/populate_scc.sh | 19 +- .../Dockerfile.ubi10-micro.ibmjava8 | 2 +- 15 files changed, 13 insertions(+), 1337 deletions(-) delete mode 100644 releases/26.0.0.8/full/Dockerfile.ubi10-micro.ibmjava8 delete mode 100644 releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk11 delete mode 100644 releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk17 delete mode 100644 releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk21 delete mode 100644 releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk25 delete mode 100644 releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk8 delete mode 100644 releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.ibmjava8 delete mode 100755 releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.openjdk11 delete mode 100755 releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.openjdk17 delete mode 100755 releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.openjdk21 delete mode 100755 releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.openjdk25 delete mode 100755 releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.openjdk8 diff --git a/releases/26.0.0.8/full/Dockerfile.ubi10-micro.ibmjava8 b/releases/26.0.0.8/full/Dockerfile.ubi10-micro.ibmjava8 deleted file mode 100644 index 58860ea0..00000000 --- a/releases/26.0.0.8/full/Dockerfile.ubi10-micro.ibmjava8 +++ /dev/null @@ -1,53 +0,0 @@ -ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:26.0.0.8-kernel-slim-java8-ibmjava-ubi-micro - -# ubi-micro has no package manager; install unzip from ubi-minimal and copy it in -FROM registry.access.redhat.com/ubi10/ubi-minimal AS builder -RUN microdnf -y install unzip && microdnf clean all - -FROM $PARENT_IMAGE AS installBundle - -ARG VERBOSE=false -ARG LIBERTY_VERSION=26.0.0.8 -ARG FEATURES_SHA=534d4f1b2b8cf34903b36f6e3780915f82a35419 - -# If there is a local copy of the repository use that instead -COPY resources/ /tmp/ - -# We need unzip when using a local repo; copy it from ubi-minimal builder stage -USER root -COPY --from=builder /usr/bin/unzip /usr/bin/unzip -COPY --from=builder /usr/lib64/libbz2.so* /usr/lib64/ -USER 1001 - -# Install all features -RUN set -eux; \ - if [ ! -f /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip ]; then \ - wget -q https://repo1.maven.org/maven2/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json -O /tmp/features-$LIBERTY_VERSION.json; \ - echo "$FEATURES_SHA /tmp/features-$LIBERTY_VERSION.json" > /tmp/features-$LIBERTY_VERSION.json.sha1; \ - sha1sum -c /tmp/features-$LIBERTY_VERSION.json.sha1; \ - else \ - echo "$FEATURES_SHA /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip" > /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \ - sha1sum -c /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \ - mkdir /tmp/feature-repo-$LIBERTY_VERSION; \ - unzip -d /tmp/feature-repo-$LIBERTY_VERSION /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip; \ - cp /tmp/feature-repo-$LIBERTY_VERSION/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json /tmp; \ - export FEATURE_LOCAL_REPO=/tmp/feature-repo-$LIBERTY_VERSION; \ - export FEATURE_VERIFY=skip; \ - fi; \ - grep \"shortName\" /tmp/features-$LIBERTY_VERSION.json | sed -e 's/.* //' -e 's/,//' | xargs featureUtility installFeature --acceptLicense --noCache; \ - rm -rf /output/workarea /output/logs; \ - find /opt/ol/wlp ! -perm -g=rw -print0 | xargs -r -0 chmod g+rw; - -ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:26.0.0.8-kernel-slim-java8-ibmjava-ubi-micro -FROM $PARENT_IMAGE -ARG VERBOSE=false - -# Copy the runtime -COPY --from=installBundle --chown=1001:0 /opt/ol/wlp /opt/ol/wlp - -COPY --chown=1001:0 server.xml /config/ - -# Create a new SCC layer -RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \ - && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache \ - && find /opt/ol/wlp/output ! -perm -g=rwx -print0 | xargs -0 -r chmod g+rwx diff --git a/releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk11 b/releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk11 deleted file mode 100644 index 0a73d85a..00000000 --- a/releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk11 +++ /dev/null @@ -1,52 +0,0 @@ -ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:26.0.0.8-kernel-slim-java11-openj9-ubi-micro - -# ubi-micro has no package manager; install unzip from ubi-minimal and copy it in -FROM registry.access.redhat.com/ubi10/ubi-minimal AS builder -RUN microdnf -y install unzip && microdnf clean all - -FROM $PARENT_IMAGE AS installBundle - -ARG VERBOSE=false -ARG LIBERTY_VERSION=26.0.0.8 -ARG FEATURES_SHA=534d4f1b2b8cf34903b36f6e3780915f82a35419 - -# If there is a local copy of the repository use that instead -COPY resources/ /tmp/ - -# We need unzip when using a local repo; copy it from ubi-minimal builder stage -USER root -COPY --from=builder /usr/bin/unzip /usr/bin/unzip -USER 1001 - -# Install all features -RUN set -eux; \ - if [ ! -f /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip ]; then \ - wget -q https://repo1.maven.org/maven2/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json -O /tmp/features-$LIBERTY_VERSION.json; \ - echo "$FEATURES_SHA /tmp/features-$LIBERTY_VERSION.json" > /tmp/features-$LIBERTY_VERSION.json.sha1; \ - sha1sum -c /tmp/features-$LIBERTY_VERSION.json.sha1; \ - else \ - echo "$FEATURES_SHA /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip" > /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \ - sha1sum -c /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \ - mkdir /tmp/feature-repo-$LIBERTY_VERSION; \ - unzip -d /tmp/feature-repo-$LIBERTY_VERSION /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip; \ - cp /tmp/feature-repo-$LIBERTY_VERSION/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json /tmp; \ - export FEATURE_LOCAL_REPO=/tmp/feature-repo-$LIBERTY_VERSION; \ - export FEATURE_VERIFY=skip; \ - fi; \ - grep \"shortName\" /tmp/features-$LIBERTY_VERSION.json | sed -e 's/.* //' -e 's/,//' | xargs featureUtility installFeature --acceptLicense --noCache; \ - rm -rf /output/workarea /output/logs; \ - find /opt/ol/wlp ! -perm -g=rw -print0 | xargs -r -0 chmod g+rw; - -ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:26.0.0.8-kernel-slim-java11-openj9-ubi-micro -FROM $PARENT_IMAGE -ARG VERBOSE=false - -# Copy the runtime -COPY --from=installBundle --chown=1001:0 /opt/ol/wlp /opt/ol/wlp - -COPY --chown=1001:0 server.xml /config/ - -# Create a new SCC layer -RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \ - && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache \ - && find /opt/ol/wlp/output ! -perm -g=rwx -print0 | xargs -0 -r chmod g+rwx diff --git a/releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk17 b/releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk17 deleted file mode 100644 index 58c8ef7a..00000000 --- a/releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk17 +++ /dev/null @@ -1,52 +0,0 @@ -ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:26.0.0.8-kernel-slim-java17-openj9-ubi-micro - -# ubi-micro has no package manager; install unzip from ubi-minimal and copy it in -FROM registry.access.redhat.com/ubi10/ubi-minimal AS builder -RUN microdnf -y install unzip && microdnf clean all - -FROM $PARENT_IMAGE AS installBundle - -ARG VERBOSE=false -ARG LIBERTY_VERSION=26.0.0.8 -ARG FEATURES_SHA=534d4f1b2b8cf34903b36f6e3780915f82a35419 - -# If there is a local copy of the repository use that instead -COPY resources/ /tmp/ - -# We need unzip when using a local repo; copy it from ubi-minimal builder stage -USER root -COPY --from=builder /usr/bin/unzip /usr/bin/unzip -USER 1001 - -# Install all features -RUN set -eux; \ - if [ ! -f /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip ]; then \ - wget -q https://repo1.maven.org/maven2/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json -O /tmp/features-$LIBERTY_VERSION.json; \ - echo "$FEATURES_SHA /tmp/features-$LIBERTY_VERSION.json" > /tmp/features-$LIBERTY_VERSION.json.sha1; \ - sha1sum -c /tmp/features-$LIBERTY_VERSION.json.sha1; \ - else \ - echo "$FEATURES_SHA /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip" > /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \ - sha1sum -c /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \ - mkdir /tmp/feature-repo-$LIBERTY_VERSION; \ - unzip -d /tmp/feature-repo-$LIBERTY_VERSION /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip; \ - cp /tmp/feature-repo-$LIBERTY_VERSION/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json /tmp; \ - export FEATURE_LOCAL_REPO=/tmp/feature-repo-$LIBERTY_VERSION; \ - export FEATURE_VERIFY=skip; \ - fi; \ - grep \"shortName\" /tmp/features-$LIBERTY_VERSION.json | sed -e 's/.* //' -e 's/,//' | xargs featureUtility installFeature --acceptLicense --noCache; \ - rm -rf /output/workarea /output/logs; \ - find /opt/ol/wlp ! -perm -g=rw -print0 | xargs -r -0 chmod g+rw; - -ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:26.0.0.8-kernel-slim-java17-openj9-ubi-micro -FROM $PARENT_IMAGE -ARG VERBOSE=false - -# Copy the runtime -COPY --from=installBundle --chown=1001:0 /opt/ol/wlp /opt/ol/wlp - -COPY --chown=1001:0 server.xml /config/ - -# Create a new SCC layer -RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \ - && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache \ - && find /opt/ol/wlp/output ! -perm -g=rwx -print0 | xargs -0 -r chmod g+rwx diff --git a/releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk21 b/releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk21 deleted file mode 100644 index 95f2543c..00000000 --- a/releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk21 +++ /dev/null @@ -1,52 +0,0 @@ -ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:26.0.0.8-kernel-slim-java21-openj9-ubi-micro - -# ubi-micro has no package manager; install unzip from ubi-minimal and copy it in -FROM registry.access.redhat.com/ubi10/ubi-minimal AS builder -RUN microdnf -y install unzip && microdnf clean all - -FROM $PARENT_IMAGE AS installBundle - -ARG VERBOSE=false -ARG LIBERTY_VERSION=26.0.0.8 -ARG FEATURES_SHA=534d4f1b2b8cf34903b36f6e3780915f82a35419 - -# If there is a local copy of the repository use that instead -COPY resources/ /tmp/ - -# We need unzip when using a local repo; copy it from ubi-minimal builder stage -USER root -COPY --from=builder /usr/bin/unzip /usr/bin/unzip -USER 1001 - -# Install all features -RUN set -eux; \ - if [ ! -f /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip ]; then \ - wget -q https://repo1.maven.org/maven2/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json -O /tmp/features-$LIBERTY_VERSION.json; \ - echo "$FEATURES_SHA /tmp/features-$LIBERTY_VERSION.json" > /tmp/features-$LIBERTY_VERSION.json.sha1; \ - sha1sum -c /tmp/features-$LIBERTY_VERSION.json.sha1; \ - else \ - echo "$FEATURES_SHA /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip" > /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \ - sha1sum -c /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \ - mkdir /tmp/feature-repo-$LIBERTY_VERSION; \ - unzip -d /tmp/feature-repo-$LIBERTY_VERSION /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip; \ - cp /tmp/feature-repo-$LIBERTY_VERSION/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json /tmp; \ - export FEATURE_LOCAL_REPO=/tmp/feature-repo-$LIBERTY_VERSION; \ - export FEATURE_VERIFY=skip; \ - fi; \ - grep \"shortName\" /tmp/features-$LIBERTY_VERSION.json | sed -e 's/.* //' -e 's/,//' | xargs featureUtility installFeature --acceptLicense --noCache; \ - rm -rf /output/workarea /output/logs; \ - find /opt/ol/wlp ! -perm -g=rw -print0 | xargs -r -0 chmod g+rw; - -ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:26.0.0.8-kernel-slim-java21-openj9-ubi-micro -FROM $PARENT_IMAGE -ARG VERBOSE=false - -# Copy the runtime -COPY --from=installBundle --chown=1001:0 /opt/ol/wlp /opt/ol/wlp - -COPY --chown=1001:0 server.xml /config/ - -# Create a new SCC layer -RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \ - && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache \ - && find /opt/ol/wlp/output ! -perm -g=rwx -print0 | xargs -0 -r chmod g+rwx diff --git a/releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk25 b/releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk25 deleted file mode 100644 index 16d91394..00000000 --- a/releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk25 +++ /dev/null @@ -1,52 +0,0 @@ -ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:26.0.0.8-kernel-slim-java25-openj9-ubi-micro - -# ubi-micro has no package manager; install unzip from ubi-minimal and copy it in -FROM registry.access.redhat.com/ubi10/ubi-minimal AS builder -RUN microdnf -y install unzip && microdnf clean all - -FROM $PARENT_IMAGE AS installBundle - -ARG VERBOSE=false -ARG LIBERTY_VERSION=26.0.0.8 -ARG FEATURES_SHA=534d4f1b2b8cf34903b36f6e3780915f82a35419 - -# If there is a local copy of the repository use that instead -COPY resources/ /tmp/ - -# We need unzip when using a local repo; copy it from ubi-minimal builder stage -USER root -COPY --from=builder /usr/bin/unzip /usr/bin/unzip -USER 1001 - -# Install all features -RUN set -eux; \ - if [ ! -f /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip ]; then \ - wget -q https://repo1.maven.org/maven2/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json -O /tmp/features-$LIBERTY_VERSION.json; \ - echo "$FEATURES_SHA /tmp/features-$LIBERTY_VERSION.json" > /tmp/features-$LIBERTY_VERSION.json.sha1; \ - sha1sum -c /tmp/features-$LIBERTY_VERSION.json.sha1; \ - else \ - echo "$FEATURES_SHA /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip" > /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \ - sha1sum -c /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \ - mkdir /tmp/feature-repo-$LIBERTY_VERSION; \ - unzip -d /tmp/feature-repo-$LIBERTY_VERSION /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip; \ - cp /tmp/feature-repo-$LIBERTY_VERSION/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json /tmp; \ - export FEATURE_LOCAL_REPO=/tmp/feature-repo-$LIBERTY_VERSION; \ - export FEATURE_VERIFY=skip; \ - fi; \ - grep \"shortName\" /tmp/features-$LIBERTY_VERSION.json | sed -e 's/.* //' -e 's/,//' | xargs featureUtility installFeature --acceptLicense --noCache; \ - rm -rf /output/workarea /output/logs; \ - find /opt/ol/wlp ! -perm -g=rw -print0 | xargs -r -0 chmod g+rw; - -ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:26.0.0.8-kernel-slim-java25-openj9-ubi-micro -FROM $PARENT_IMAGE -ARG VERBOSE=false - -# Copy the runtime -COPY --from=installBundle --chown=1001:0 /opt/ol/wlp /opt/ol/wlp - -COPY --chown=1001:0 server.xml /config/ - -# Create a new SCC layer -RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \ - && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache \ - && find /opt/ol/wlp/output ! -perm -g=rwx -print0 | xargs -0 -r chmod g+rwx diff --git a/releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk8 b/releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk8 deleted file mode 100644 index 6d3d51c4..00000000 --- a/releases/26.0.0.8/full/Dockerfile.ubi10-micro.openjdk8 +++ /dev/null @@ -1,52 +0,0 @@ -ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:26.0.0.8-kernel-slim-java8-openj9-ubi-micro - -# ubi-micro has no package manager; install unzip from ubi-minimal and copy it in -FROM registry.access.redhat.com/ubi10/ubi-minimal AS builder -RUN microdnf -y install unzip && microdnf clean all - -FROM $PARENT_IMAGE AS installBundle - -ARG VERBOSE=false -ARG LIBERTY_VERSION=26.0.0.8 -ARG FEATURES_SHA=534d4f1b2b8cf34903b36f6e3780915f82a35419 - -# If there is a local copy of the repository use that instead -COPY resources/ /tmp/ - -# We need unzip when using a local repo; copy it from ubi-minimal builder stage -USER root -COPY --from=builder /usr/bin/unzip /usr/bin/unzip -USER 1001 - -# Install all features -RUN set -eux; \ - if [ ! -f /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip ]; then \ - wget -q https://repo1.maven.org/maven2/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json -O /tmp/features-$LIBERTY_VERSION.json; \ - echo "$FEATURES_SHA /tmp/features-$LIBERTY_VERSION.json" > /tmp/features-$LIBERTY_VERSION.json.sha1; \ - sha1sum -c /tmp/features-$LIBERTY_VERSION.json.sha1; \ - else \ - echo "$FEATURES_SHA /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip" > /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \ - sha1sum -c /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \ - mkdir /tmp/feature-repo-$LIBERTY_VERSION; \ - unzip -d /tmp/feature-repo-$LIBERTY_VERSION /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip; \ - cp /tmp/feature-repo-$LIBERTY_VERSION/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json /tmp; \ - export FEATURE_LOCAL_REPO=/tmp/feature-repo-$LIBERTY_VERSION; \ - export FEATURE_VERIFY=skip; \ - fi; \ - grep \"shortName\" /tmp/features-$LIBERTY_VERSION.json | sed -e 's/.* //' -e 's/,//' | xargs featureUtility installFeature --acceptLicense --noCache; \ - rm -rf /output/workarea /output/logs; \ - find /opt/ol/wlp ! -perm -g=rw -print0 | xargs -r -0 chmod g+rw; - -ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:26.0.0.8-kernel-slim-java8-openj9-ubi-micro -FROM $PARENT_IMAGE -ARG VERBOSE=false - -# Copy the runtime -COPY --from=installBundle --chown=1001:0 /opt/ol/wlp /opt/ol/wlp - -COPY --chown=1001:0 server.xml /config/ - -# Create a new SCC layer -RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \ - && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache \ - && find /opt/ol/wlp/output ! -perm -g=rwx -print0 | xargs -0 -r chmod g+rwx diff --git a/releases/26.0.0.8/full/helpers/build/populate_scc.sh b/releases/26.0.0.8/full/helpers/build/populate_scc.sh index 1c1fc7dd..1012a07a 100755 --- a/releases/26.0.0.8/full/helpers/build/populate_scc.sh +++ b/releases/26.0.0.8/full/helpers/build/populate_scc.sh @@ -81,10 +81,10 @@ do -s Size of the SCC in megabytes (m suffix required). (Default: $SCC_SIZE) -t Trim the SCC to eliminate most of the free space, if any. -d Don't trim the SCC. - -w Use curl/wget to warm an endpoint during SCC creation. (Default: $WARM_ENDPOINT) + -w Use curl to warm an endpoint during SCC creation. (Default: $WARM_ENDPOINT) -c Do not warm an endpoint during SCC creation. -u The URL endpoint to warm during SCC creation. (Default: $WARM_ENDPOINT_URL) - -m Use curl/wget to warm the openapi endpoint during SCC creation. (Default: $WARM_OPENAPI_ENDPOINT) + -m Use curl to warm the openapi endpoint during SCC creation. (Default: $WARM_OPENAPI_ENDPOINT) -l Do not warm the openapi endpoint during SCC creation. -o The Open API URL endpoint to warm during SCC creation. (Default: $WARM_ENDPOINT_OPENAPI_URL) @@ -105,13 +105,6 @@ done OLD_UMASK=`umask` umask 002 # 002 is required to provide group rw permission to the cache when `-Xshareclasses:groupAccess` options is used -# Use curl/wget to warm endpoints -if command -v curl > /dev/null 2>&1; then - http_get() { curl --silent --output /dev/null --show-error --fail --max-time 5 "$1"; } -else - http_get() { wget -q -O /dev/null -T 5 "$1"; } -fi - # Explicity create a class cache layer for this image layer here rather than allowing # `server start` to do it, which will lead to problems because multiple JVMs will be started. java $CREATE_LAYER -Xscmx$SCC_SIZE -version @@ -124,11 +117,11 @@ then if [ ${WARM_ENDPOINT} == true ] then - http_get ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing" + curl --silent --output /dev/null --show-error --fail --max-time 5 ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing" fi if [ ${WARM_OPENAPI_ENDPOINT} == true ] then - http_get ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing" + curl --silent --output /dev/null --show-error --fail --max-time 5 ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing" fi /opt/ol/wlp/bin/server stop @@ -159,11 +152,11 @@ do if [ ${WARM_ENDPOINT} == true ] then - http_get ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing" + curl --silent --output /dev/null --show-error --fail --max-time 5 ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing" fi if [ ${WARM_OPENAPI_ENDPOINT} == true ] then - http_get ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing" + curl --silent --output /dev/null --show-error --fail --max-time 5 ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing" fi /opt/ol/wlp/bin/server stop diff --git a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.ibmjava8 b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.ibmjava8 deleted file mode 100644 index a561d267..00000000 --- a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.ibmjava8 +++ /dev/null @@ -1,177 +0,0 @@ -# This relies on a base image which needs to be built seperately -# curl https://raw.githubusercontent.com/ibmruntimes/ci.docker/main/ibmjava/8/jre/ubi-min/Dockerfile -o java/Dockerfile.ubi10.minimal -# The above file needs editing before it is built: -# This changes to a UBI10 base, and corrects the microdnf command to work on UBI10. -# $> sed -i -e 's/ubi8/ubi10/' -e 's/microdnf install/microdnf -y install/' -e 's/microdnf update/microdnf update -y/' Dockerfile.ubi10-minimal.ibmjava8 -# $> rm ./java/Dockerfile.ubi10.minimal.bak -# Then build and tag as 'ibmjava:10-ubi' -# $> docker build -t ibmjava:10-ubi -f ./java/Dockerfile.ubi10.minimal java - -FROM ibmjava:10-ubi AS builder - -USER root - -ARG LIBERTY_VERSION=26.0.0.8 -ARG LIBERTY_SHA=6394fee2c842008e9e36f3474c23330bfe467f48 -ARG LIBERTY_DOWNLOAD_URL=https://repo1.maven.org/maven2/io/openliberty/openliberty-kernel/$LIBERTY_VERSION/openliberty-kernel-$LIBERTY_VERSION.zip - -ARG VERBOSE=false - -# If there is a local copy of the image use that instead -COPY resources/ /tmp/ - -# Install Open Liberty -RUN microdnf -y install shadow-utils wget unzip openssl \ - && if [ ! -f /tmp/wlp.zip ]; then wget -q $LIBERTY_DOWNLOAD_URL -U UA-Open-Liberty-Docker -O /tmp/wlp.zip; fi \ - && echo "$LIBERTY_SHA /tmp/wlp.zip" > /tmp/wlp.zip.sha1 \ - && sha1sum -c /tmp/wlp.zip.sha1 \ - && chmod -R u+x /usr/bin \ - && unzip -q /tmp/wlp.zip -d /opt/ol \ - && mkdir -p /licenses \ - && cp /opt/ol/wlp/LICENSE /licenses/ \ -# && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ - && chown -R 1001:0 /opt/ol/wlp \ - && chmod -R g+rw /opt/ol/wlp - -# Install dumb-init -RUN set -eux; \ - ARCH="$(uname -m)"; \ - case "${ARCH}" in \ - aarch64|arm64) \ - DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_aarch64'; \ - DUMB_INIT_SHA256=b7d648f97154a99c539b63c55979cd29f005f88430fb383007fe3458340b795e; \ - ;; \ - amd64|x86_64) \ - DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_x86_64'; \ - DUMB_INIT_SHA256=e874b55f3279ca41415d290c512a7ba9d08f98041b28ae7c2acb19a545f1c4df; \ - ;; \ - ppc64el|ppc64le) \ - DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_ppc64le'; \ - DUMB_INIT_SHA256=3d15e80e29f0f4fa1fc686b00613a2220bc37e83a35283d4b4cca1fbd0a5609f; \ - ;; \ - s390x) \ - DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_s390x'; \ - DUMB_INIT_SHA256=47e4601b152fc6dcb1891e66c30ecc62a2939fd7ffd1515a7c30f281cfec53b7; \ - ;;\ - *) \ - echo "Unsupported arch: ${ARCH}"; \ - exit 1; \ - ;; \ - esac; \ - curl -LfsSo /usr/bin/dumb-init ${DUMB_INIT_URL}; \ - echo "${DUMB_INIT_SHA256} */usr/bin/dumb-init" | sha256sum -c -; \ - chmod +x /usr/bin/dumb-init; - -FROM ibmjava:8-ubi10-micro - -USER root - -ARG LIBERTY_VERSION=26.0.0.8 -ARG LIBERTY_BUILD_LABEL=cl260820260725-1102 - -ARG OPENJ9_SCC=true -ARG VERBOSE=false - -LABEL org.opencontainers.image.authors="Leo Christy Jesuraj, Iain Lewis, Melissa Lee, Kirby Chin" \ - org.opencontainers.image.vendor="Open Liberty" \ - org.opencontainers.image.url="https://openliberty.io/" \ - org.opencontainers.image.source="https://github.com/OpenLiberty/ci.docker" \ - org.opencontainers.image.version="$LIBERTY_VERSION" \ - org.opencontainers.image.revision="$LIBERTY_BUILD_LABEL" \ - liberty.version="$LIBERTY_VERSION" \ - io.openliberty.version="$LIBERTY_VERSION" \ - vendor="Open Liberty" \ - name="Open Liberty" \ - version="$LIBERTY_VERSION" \ - summary="Image for Open Liberty with IBM's Java and UBI 10 micro" \ - description="This image contains the Open Liberty runtime with IBM's Java and Red Hat UBI 10 micro as the base OS. For more information on this image please see https://github.com/OpenLiberty/ci.docker#building-an-application-image" - -COPY NOTICES /opt/ol/NOTICES -COPY helpers /opt/ol/helpers -COPY fixes/ /opt/ol/fixes/ - -# Add default user 1001 and create wlp with right user/permissions before copying -RUN echo "1001:x:1001:0::/home/1001:/sbin/nologin" >> /etc/passwd \ - && mkdir -p /home/1001 \ - && chown 1001:0 /home/1001 \ - && mkdir -p /opt/ol/wlp \ - && chown -R 1001:0 /opt/ol/wlp \ - && chmod -R g+rw /opt/ol/wlp - -COPY --from=builder /usr/bin/dumb-init /usr/bin/dumb-init -COPY --from=builder /usr/bin/awk /usr/bin/awk -COPY --from=builder /usr/bin/wget /usr/bin/wget - -COPY --from=builder /usr/lib64/libpsl.so* /usr/lib64/ -COPY --from=builder /usr/lib64/libmpfr.so* /usr/lib64/ -COPY --from=builder /usr/lib64/libreadline.so* /usr/lib64/ -COPY --from=builder /usr/lib64/libgnutls.so* /usr/lib64/ -COPY --from=builder /usr/lib64/libidn2.so* /usr/lib64/ -COPY --from=builder /usr/lib64/libunistring.so* /usr/lib64/ -COPY --from=builder /usr/lib64/libuuid.so* /usr/lib64/ - -# Copy the runtime and licenses -COPY --from=builder --chown=1001:0 /opt/ol/wlp /opt/ol/wlp -COPY --from=builder /licenses /licenses - -# Set Path Shortcuts -ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \ - LOG_DIR=/liberty/logs \ - WLP_OUTPUT_DIR=/opt/ol/wlp/output \ - WLP_SKIP_MAXPERMSIZE=true \ - OPENJ9_SCC=$OPENJ9_SCC - -# Configure Open Liberty -RUN /opt/ol/wlp/bin/server create \ - && rm -rf $WLP_OUTPUT_DIR/.classCache /output/workarea \ - && rm -rf /opt/ol/wlp/usr/servers/defaultServer/server.env - -# Create symlinks && set permissions for non-root user -RUN mkdir /logs \ - && chown -R 1001:0 /logs \ - && chmod -R g+rw /logs \ - && mkdir -p /opt/ol/wlp/usr/shared/resources/lib.index.cache \ - && ln -s /opt/ol/wlp/usr/shared/resources/lib.index.cache /lib.index.cache \ - && mkdir -p $WLP_OUTPUT_DIR/defaultServer \ - && ln -s $WLP_OUTPUT_DIR/defaultServer /output \ - && ln -s /opt/ol/wlp/usr/servers/defaultServer /config \ - && mkdir -p /config/configDropins/defaults \ - && mkdir -p /config/configDropins/overrides \ - && ln -s /opt/ol/wlp /liberty \ - && ln -s /opt/ol/fixes /fixes \ - && echo "" > /config/configDropins/defaults/open-default-port.xml \ - && chown -R 1001:0 /config \ - && chmod -R g+rw /config \ - && chown -R 1001:0 /opt/ol/wlp/usr \ - && chmod -R g+rw /opt/ol/wlp/usr \ - && chown -R 1001:0 /opt/ol/wlp/output \ - && chmod -R g+rw /opt/ol/wlp/output \ - && chown -R 1001:0 /opt/ol/helpers \ - && chmod -R ug+rwx /opt/ol/helpers \ - && chown -R 1001:0 /opt/ol/fixes \ - && chmod -R g+rwx /opt/ol/fixes \ - && mkdir /etc/wlp \ - && chown -R 1001:0 /etc/wlp \ - && chmod -R g+rw /etc/wlp \ - && ln -s /logs /liberty/logs \ - && mkdir /serviceability \ - && chown -R 1001:0 /serviceability \ - && chmod -R g+rw /serviceability - -# Create a new SCC layer -RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \ - && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache /output/workarea \ - && chown -R 1001:0 /opt/ol/wlp/output \ - && chmod -R g+rwx /opt/ol/wlp/output - -#These settings are needed so that we can run as a different user than 1001 after server warmup -ENV RANDFILE=/tmp/.rnd \ - IBM_JAVA_OPTIONS="-Xshareclasses:name=liberty,readonly,nonfatal,cacheDir=/output/.classCache/ -Dosgi.checkConfiguration=false ${IBM_JAVA_OPTIONS}" - -USER 1001 - -EXPOSE 9080 9443 - -ENTRYPOINT ["/opt/ol/helpers/runtime/docker-server.sh"] -CMD ["/opt/ol/wlp/bin/server", "run", "defaultServer"] - diff --git a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.openjdk11 b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.openjdk11 deleted file mode 100755 index 671663ac..00000000 --- a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.openjdk11 +++ /dev/null @@ -1,164 +0,0 @@ -FROM registry.access.redhat.com/ubi10/ubi-minimal:latest AS builder - -USER root - -ARG LIBERTY_VERSION=26.0.0.8 -ARG LIBERTY_SHA=6394fee2c842008e9e36f3474c23330bfe467f48 -ARG LIBERTY_DOWNLOAD_URL=https://repo1.maven.org/maven2/io/openliberty/openliberty-kernel/$LIBERTY_VERSION/openliberty-kernel-$LIBERTY_VERSION.zip - -ARG VERBOSE=false - -# If there is a local copy of the image use that instead -COPY resources/ /tmp/ - -# Install Open Liberty -RUN microdnf -y install shadow-utils wget unzip openssl \ - && if [ ! -f /tmp/wlp.zip ]; then wget -q $LIBERTY_DOWNLOAD_URL -U UA-Open-Liberty-Docker -O /tmp/wlp.zip; fi \ - && echo "$LIBERTY_SHA /tmp/wlp.zip" > /tmp/wlp.zip.sha1 \ - && sha1sum -c /tmp/wlp.zip.sha1 \ - && chmod -R u+x /usr/bin \ - && unzip -q /tmp/wlp.zip -d /opt/ol \ - && mkdir -p /licenses \ - && cp /opt/ol/wlp/LICENSE /licenses/ \ - && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ - && chown -R 1001:0 /opt/ol/wlp \ - && chmod -R g+rw /opt/ol/wlp - -# Install dumb-init -RUN set -eux; \ - ARCH="$(uname -m)"; \ - case "${ARCH}" in \ - aarch64|arm64) \ - DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_aarch64'; \ - DUMB_INIT_SHA256=b7d648f97154a99c539b63c55979cd29f005f88430fb383007fe3458340b795e; \ - ;; \ - amd64|x86_64) \ - DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_x86_64'; \ - DUMB_INIT_SHA256=e874b55f3279ca41415d290c512a7ba9d08f98041b28ae7c2acb19a545f1c4df; \ - ;; \ - ppc64el|ppc64le) \ - DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_ppc64le'; \ - DUMB_INIT_SHA256=3d15e80e29f0f4fa1fc686b00613a2220bc37e83a35283d4b4cca1fbd0a5609f; \ - ;; \ - s390x) \ - DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_s390x'; \ - DUMB_INIT_SHA256=47e4601b152fc6dcb1891e66c30ecc62a2939fd7ffd1515a7c30f281cfec53b7; \ - ;;\ - *) \ - echo "Unsupported arch: ${ARCH}"; \ - exit 1; \ - ;; \ - esac; \ - curl -LfsSo /usr/bin/dumb-init ${DUMB_INIT_URL}; \ - echo "${DUMB_INIT_SHA256} */usr/bin/dumb-init" | sha256sum -c -; \ - chmod +x /usr/bin/dumb-init; - -FROM icr.io/appcafe/ibm-semeru-runtimes:open-11-jre-ubi10-micro - -USER root - -ARG LIBERTY_VERSION=26.0.0.8 -ARG LIBERTY_BUILD_LABEL=cl260820260725-1102 - -ARG OPENJ9_SCC=true -ARG VERBOSE=false - -LABEL org.opencontainers.image.authors="Leo Christy Jesuraj, Iain Lewis, Melissa Lee, Kirby Chin" \ - org.opencontainers.image.vendor="Open Liberty" \ - org.opencontainers.image.url="https://openliberty.io/" \ - org.opencontainers.image.source="https://github.com/OpenLiberty/ci.docker" \ - org.opencontainers.image.version="$LIBERTY_VERSION" \ - org.opencontainers.image.revision="$LIBERTY_BUILD_LABEL" \ - liberty.version="$LIBERTY_VERSION" \ - io.openliberty.version="$LIBERTY_VERSION" \ - vendor="Open Liberty" \ - name="Open Liberty" \ - version="$LIBERTY_VERSION" \ - summary="Image for Open Liberty with IBM Semeru Runtime Open Edition OpenJDK 11 with OpenJ9 and UBI 10 micro" \ - description="This image contains the Open Liberty runtime with IBM Semeru Runtime Open Edition OpenJDK 11 with OpenJ9 and Red Hat UBI 10 micro as the base OS. For more information on this image please see https://github.com/OpenLiberty/ci.docker#building-an-application-image" - -COPY NOTICES /opt/ol/NOTICES -COPY helpers /opt/ol/helpers -COPY fixes/ /opt/ol/fixes/ - -# Add default user 1001 and create wlp with right user/permissions before copying -RUN echo "1001:x:1001:0::/home/1001:/sbin/nologin" >> /etc/passwd \ - && mkdir -p /home/1001 \ - && chown 1001:0 /home/1001 \ - && mkdir -p /opt/ol/wlp \ - && chown -R 1001:0 /opt/ol/wlp \ - && chmod -R g+rw /opt/ol/wlp - -COPY --from=builder /usr/bin/dumb-init /usr/bin/dumb-init -COPY --from=builder /usr/bin/awk /usr/bin/awk -COPY --from=builder /usr/bin/wget /usr/bin/wget - -COPY --from=builder /usr/lib64/libpsl.so* /usr/lib64/ -COPY --from=builder /usr/lib64/libmpfr.so* /usr/lib64/ - -# Copy the runtime and licenses -COPY --from=builder --chown=1001:0 /opt/ol/wlp /opt/ol/wlp -COPY --from=builder /licenses /licenses - -# Set Path Shortcuts -ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \ - LOG_DIR=/liberty/logs \ - WLP_OUTPUT_DIR=/opt/ol/wlp/output \ - WLP_SKIP_MAXPERMSIZE=true \ - OPENJ9_SCC=$OPENJ9_SCC - -# Configure Open Liberty -RUN /opt/ol/wlp/bin/server create \ - && rm -rf $WLP_OUTPUT_DIR/.classCache /output/workarea \ - && rm -rf /opt/ol/wlp/usr/servers/defaultServer/server.env - -# Create symlinks && set permissions for non-root user -RUN mkdir /logs \ - && chown -R 1001:0 /logs \ - && chmod -R g+rw /logs \ - && mkdir -p /opt/ol/wlp/usr/shared/resources/lib.index.cache \ - && ln -s /opt/ol/wlp/usr/shared/resources/lib.index.cache /lib.index.cache \ - && mkdir -p $WLP_OUTPUT_DIR/defaultServer \ - && ln -s $WLP_OUTPUT_DIR/defaultServer /output \ - && ln -s /opt/ol/wlp/usr/servers/defaultServer /config \ - && mkdir -p /config/configDropins/defaults \ - && mkdir -p /config/configDropins/overrides \ - && ln -s /opt/ol/wlp /liberty \ - && ln -s /opt/ol/fixes /fixes \ - && echo "" > /config/configDropins/defaults/open-default-port.xml \ - && chown -R 1001:0 /config \ - && chmod -R g+rw /config \ - && chown -R 1001:0 /opt/ol/wlp/usr \ - && chmod -R g+rw /opt/ol/wlp/usr \ - && chown -R 1001:0 /opt/ol/wlp/output \ - && chmod -R g+rw /opt/ol/wlp/output \ - && chown -R 1001:0 /opt/ol/helpers \ - && chmod -R ug+rwx /opt/ol/helpers \ - && chown -R 1001:0 /opt/ol/fixes \ - && chmod -R g+rwx /opt/ol/fixes \ - && mkdir /etc/wlp \ - && chown -R 1001:0 /etc/wlp \ - && chmod -R g+rw /etc/wlp \ - && if [ -e /etc/instanton.ld.so.cache ]; then chmod g+w /etc/ld.so.cache; fi \ - && ln -s /logs /liberty/logs \ - && mkdir /serviceability \ - && chown -R 1001:0 /serviceability \ - && chmod -R g+rw /serviceability - -# Create a new SCC layer -RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \ - && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache /output/workarea \ - && chown -R 1001:0 /opt/ol/wlp/output \ - && chmod -R g+rwx /opt/ol/wlp/output - -#These settings are needed so that we can run as a different user than 1001 after server warmup -ENV RANDFILE=/tmp/.rnd \ - OPENJ9_JAVA_OPTIONS="-XX:+IgnoreUnrecognizedVMOptions -XX:+IdleTuningGcOnIdle -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,readonly,nonFatal -Dosgi.checkConfiguration=false" - -USER 1001 - -EXPOSE 9080 9443 - -ENTRYPOINT ["/opt/ol/helpers/runtime/docker-server.sh"] -CMD ["/opt/ol/wlp/bin/server", "run", "defaultServer"] - diff --git a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.openjdk17 b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.openjdk17 deleted file mode 100755 index c15410ac..00000000 --- a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.openjdk17 +++ /dev/null @@ -1,164 +0,0 @@ -FROM registry.access.redhat.com/ubi10/ubi-minimal:latest AS builder - -USER root - -ARG LIBERTY_VERSION=26.0.0.8 -ARG LIBERTY_SHA=6394fee2c842008e9e36f3474c23330bfe467f48 -ARG LIBERTY_DOWNLOAD_URL=https://repo1.maven.org/maven2/io/openliberty/openliberty-kernel/$LIBERTY_VERSION/openliberty-kernel-$LIBERTY_VERSION.zip - -ARG VERBOSE=false - -# If there is a local copy of the image use that instead -COPY resources/ /tmp/ - -# Install Open Liberty -RUN microdnf -y install shadow-utils wget unzip openssl \ - && if [ ! -f /tmp/wlp.zip ]; then wget -q $LIBERTY_DOWNLOAD_URL -U UA-Open-Liberty-Docker -O /tmp/wlp.zip; fi \ - && echo "$LIBERTY_SHA /tmp/wlp.zip" > /tmp/wlp.zip.sha1 \ - && sha1sum -c /tmp/wlp.zip.sha1 \ - && chmod -R u+x /usr/bin \ - && unzip -q /tmp/wlp.zip -d /opt/ol \ - && mkdir -p /licenses \ - && cp /opt/ol/wlp/LICENSE /licenses/ \ - && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ - && chown -R 1001:0 /opt/ol/wlp \ - && chmod -R g+rw /opt/ol/wlp - -# Install dumb-init -RUN set -eux; \ - ARCH="$(uname -m)"; \ - case "${ARCH}" in \ - aarch64|arm64) \ - DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_aarch64'; \ - DUMB_INIT_SHA256=b7d648f97154a99c539b63c55979cd29f005f88430fb383007fe3458340b795e; \ - ;; \ - amd64|x86_64) \ - DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_x86_64'; \ - DUMB_INIT_SHA256=e874b55f3279ca41415d290c512a7ba9d08f98041b28ae7c2acb19a545f1c4df; \ - ;; \ - ppc64el|ppc64le) \ - DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_ppc64le'; \ - DUMB_INIT_SHA256=3d15e80e29f0f4fa1fc686b00613a2220bc37e83a35283d4b4cca1fbd0a5609f; \ - ;; \ - s390x) \ - DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_s390x'; \ - DUMB_INIT_SHA256=47e4601b152fc6dcb1891e66c30ecc62a2939fd7ffd1515a7c30f281cfec53b7; \ - ;;\ - *) \ - echo "Unsupported arch: ${ARCH}"; \ - exit 1; \ - ;; \ - esac; \ - curl -LfsSo /usr/bin/dumb-init ${DUMB_INIT_URL}; \ - echo "${DUMB_INIT_SHA256} */usr/bin/dumb-init" | sha256sum -c -; \ - chmod +x /usr/bin/dumb-init; - -FROM icr.io/appcafe/ibm-semeru-runtimes:open-17-jre-ubi10-micro - -USER root - -ARG LIBERTY_VERSION=26.0.0.8 -ARG LIBERTY_BUILD_LABEL=cl260820260725-1102 - -ARG OPENJ9_SCC=true -ARG VERBOSE=false - -LABEL org.opencontainers.image.authors="Leo Christy Jesuraj, Iain Lewis, Melissa Lee, Kirby Chin" \ - org.opencontainers.image.vendor="Open Liberty" \ - org.opencontainers.image.url="https://openliberty.io/" \ - org.opencontainers.image.source="https://github.com/OpenLiberty/ci.docker" \ - org.opencontainers.image.version="$LIBERTY_VERSION" \ - org.opencontainers.image.revision="$LIBERTY_BUILD_LABEL" \ - liberty.version="$LIBERTY_VERSION" \ - io.openliberty.version="$LIBERTY_VERSION" \ - vendor="Open Liberty" \ - name="Open Liberty" \ - version="$LIBERTY_VERSION" \ - summary="Image for Open Liberty with IBM Semeru Runtime Open Edition OpenJDK 17 with OpenJ9 and UBI 10 micro" \ - description="This image contains the Open Liberty runtime with IBM Semeru Runtime Open Edition OpenJDK 17 with OpenJ9 and Red Hat UBI 10 micro as the base OS. For more information on this image please see https://github.com/OpenLiberty/ci.docker#building-an-application-image" - -COPY NOTICES /opt/ol/NOTICES -COPY helpers /opt/ol/helpers -COPY fixes/ /opt/ol/fixes/ - -# Add default user 1001 and create wlp with right user/permissions before copying -RUN echo "1001:x:1001:0::/home/1001:/sbin/nologin" >> /etc/passwd \ - && mkdir -p /home/1001 \ - && chown 1001:0 /home/1001 \ - && mkdir -p /opt/ol/wlp \ - && chown -R 1001:0 /opt/ol/wlp \ - && chmod -R g+rw /opt/ol/wlp - -COPY --from=builder /usr/bin/dumb-init /usr/bin/dumb-init -COPY --from=builder /usr/bin/awk /usr/bin/awk -COPY --from=builder /usr/bin/wget /usr/bin/wget - -COPY --from=builder /usr/lib64/libpsl.so* /usr/lib64/ -COPY --from=builder /usr/lib64/libmpfr.so* /usr/lib64/ - -# Copy the runtime and licenses -COPY --from=builder --chown=1001:0 /opt/ol/wlp /opt/ol/wlp -COPY --from=builder /licenses /licenses - -# Set Path Shortcuts -ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \ - LOG_DIR=/liberty/logs \ - WLP_OUTPUT_DIR=/opt/ol/wlp/output \ - WLP_SKIP_MAXPERMSIZE=true \ - OPENJ9_SCC=$OPENJ9_SCC - -# Configure Open Liberty -RUN /opt/ol/wlp/bin/server create \ - && rm -rf $WLP_OUTPUT_DIR/.classCache /output/workarea \ - && rm -rf /opt/ol/wlp/usr/servers/defaultServer/server.env - -# Create symlinks && set permissions for non-root user -RUN mkdir /logs \ - && chown -R 1001:0 /logs \ - && chmod -R g+rw /logs \ - && mkdir -p /opt/ol/wlp/usr/shared/resources/lib.index.cache \ - && ln -s /opt/ol/wlp/usr/shared/resources/lib.index.cache /lib.index.cache \ - && mkdir -p $WLP_OUTPUT_DIR/defaultServer \ - && ln -s $WLP_OUTPUT_DIR/defaultServer /output \ - && ln -s /opt/ol/wlp/usr/servers/defaultServer /config \ - && mkdir -p /config/configDropins/defaults \ - && mkdir -p /config/configDropins/overrides \ - && ln -s /opt/ol/wlp /liberty \ - && ln -s /opt/ol/fixes /fixes \ - && echo "" > /config/configDropins/defaults/open-default-port.xml \ - && chown -R 1001:0 /config \ - && chmod -R g+rw /config \ - && chown -R 1001:0 /opt/ol/wlp/usr \ - && chmod -R g+rw /opt/ol/wlp/usr \ - && chown -R 1001:0 /opt/ol/wlp/output \ - && chmod -R g+rw /opt/ol/wlp/output \ - && chown -R 1001:0 /opt/ol/helpers \ - && chmod -R ug+rwx /opt/ol/helpers \ - && chown -R 1001:0 /opt/ol/fixes \ - && chmod -R g+rwx /opt/ol/fixes \ - && mkdir /etc/wlp \ - && chown -R 1001:0 /etc/wlp \ - && chmod -R g+rw /etc/wlp \ - && if [ -e /etc/instanton.ld.so.cache ]; then chmod g+w /etc/ld.so.cache; fi \ - && ln -s /logs /liberty/logs \ - && mkdir /serviceability \ - && chown -R 1001:0 /serviceability \ - && chmod -R g+rw /serviceability - -# Create a new SCC layer -RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \ - && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache /output/workarea \ - && chown -R 1001:0 /opt/ol/wlp/output \ - && chmod -R g+rwx /opt/ol/wlp/output - -#These settings are needed so that we can run as a different user than 1001 after server warmup -ENV RANDFILE=/tmp/.rnd \ - OPENJ9_JAVA_OPTIONS="-XX:+IgnoreUnrecognizedVMOptions -XX:+IdleTuningGcOnIdle -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,readonly,nonFatal -Dosgi.checkConfiguration=false" - -USER 1001 - -EXPOSE 9080 9443 - -ENTRYPOINT ["/opt/ol/helpers/runtime/docker-server.sh"] -CMD ["/opt/ol/wlp/bin/server", "run", "defaultServer"] - diff --git a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.openjdk21 b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.openjdk21 deleted file mode 100755 index 0b69f6f2..00000000 --- a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.openjdk21 +++ /dev/null @@ -1,164 +0,0 @@ -FROM registry.access.redhat.com/ubi10/ubi-minimal:latest AS builder - -USER root - -ARG LIBERTY_VERSION=26.0.0.8 -ARG LIBERTY_SHA=6394fee2c842008e9e36f3474c23330bfe467f48 -ARG LIBERTY_DOWNLOAD_URL=https://repo1.maven.org/maven2/io/openliberty/openliberty-kernel/$LIBERTY_VERSION/openliberty-kernel-$LIBERTY_VERSION.zip - -ARG VERBOSE=false - -# If there is a local copy of the image use that instead -COPY resources/ /tmp/ - -# Install Open Liberty -RUN microdnf -y install shadow-utils wget unzip openssl \ - && if [ ! -f /tmp/wlp.zip ]; then wget -q $LIBERTY_DOWNLOAD_URL -U UA-Open-Liberty-Docker -O /tmp/wlp.zip; fi \ - && echo "$LIBERTY_SHA /tmp/wlp.zip" > /tmp/wlp.zip.sha1 \ - && sha1sum -c /tmp/wlp.zip.sha1 \ - && chmod -R u+x /usr/bin \ - && unzip -q /tmp/wlp.zip -d /opt/ol \ - && mkdir -p /licenses \ - && cp /opt/ol/wlp/LICENSE /licenses/ \ - && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ - && chown -R 1001:0 /opt/ol/wlp \ - && chmod -R g+rw /opt/ol/wlp - -# Install dumb-init -RUN set -eux; \ - ARCH="$(uname -m)"; \ - case "${ARCH}" in \ - aarch64|arm64) \ - DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_aarch64'; \ - DUMB_INIT_SHA256=b7d648f97154a99c539b63c55979cd29f005f88430fb383007fe3458340b795e; \ - ;; \ - amd64|x86_64) \ - DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_x86_64'; \ - DUMB_INIT_SHA256=e874b55f3279ca41415d290c512a7ba9d08f98041b28ae7c2acb19a545f1c4df; \ - ;; \ - ppc64el|ppc64le) \ - DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_ppc64le'; \ - DUMB_INIT_SHA256=3d15e80e29f0f4fa1fc686b00613a2220bc37e83a35283d4b4cca1fbd0a5609f; \ - ;; \ - s390x) \ - DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_s390x'; \ - DUMB_INIT_SHA256=47e4601b152fc6dcb1891e66c30ecc62a2939fd7ffd1515a7c30f281cfec53b7; \ - ;;\ - *) \ - echo "Unsupported arch: ${ARCH}"; \ - exit 1; \ - ;; \ - esac; \ - curl -LfsSo /usr/bin/dumb-init ${DUMB_INIT_URL}; \ - echo "${DUMB_INIT_SHA256} */usr/bin/dumb-init" | sha256sum -c -; \ - chmod +x /usr/bin/dumb-init; - -FROM icr.io/appcafe/ibm-semeru-runtimes:open-21-jre-ubi10-micro - -USER root - -ARG LIBERTY_VERSION=26.0.0.8 -ARG LIBERTY_BUILD_LABEL=cl260820260725-1102 - -ARG OPENJ9_SCC=true -ARG VERBOSE=false - -LABEL org.opencontainers.image.authors="Leo Christy Jesuraj, Iain Lewis, Melissa Lee, Kirby Chin" \ - org.opencontainers.image.vendor="Open Liberty" \ - org.opencontainers.image.url="https://openliberty.io/" \ - org.opencontainers.image.source="https://github.com/OpenLiberty/ci.docker" \ - org.opencontainers.image.version="$LIBERTY_VERSION" \ - org.opencontainers.image.revision="$LIBERTY_BUILD_LABEL" \ - liberty.version="$LIBERTY_VERSION" \ - io.openliberty.version="$LIBERTY_VERSION" \ - vendor="Open Liberty" \ - name="Open Liberty" \ - version="$LIBERTY_VERSION" \ - summary="Image for Open Liberty with IBM Semeru Runtime Open Edition OpenJDK 21 with OpenJ9 and UBI 10 micro" \ - description="This image contains the Open Liberty runtime with IBM Semeru Runtime Open Edition OpenJDK 21 with OpenJ9 and Red Hat UBI 10 micro as the base OS. For more information on this image please see https://github.com/OpenLiberty/ci.docker#building-an-application-image" - -COPY NOTICES /opt/ol/NOTICES -COPY helpers /opt/ol/helpers -COPY fixes/ /opt/ol/fixes/ - -# Add default user 1001 and create wlp with right user/permissions before copying -RUN echo "1001:x:1001:0::/home/1001:/sbin/nologin" >> /etc/passwd \ - && mkdir -p /home/1001 \ - && chown 1001:0 /home/1001 \ - && mkdir -p /opt/ol/wlp \ - && chown -R 1001:0 /opt/ol/wlp \ - && chmod -R g+rw /opt/ol/wlp - -COPY --from=builder /usr/bin/dumb-init /usr/bin/dumb-init -COPY --from=builder /usr/bin/awk /usr/bin/awk -COPY --from=builder /usr/bin/wget /usr/bin/wget - -COPY --from=builder /usr/lib64/libpsl.so* /usr/lib64/ -COPY --from=builder /usr/lib64/libmpfr.so* /usr/lib64/ - -# Copy the runtime and licenses -COPY --from=builder --chown=1001:0 /opt/ol/wlp /opt/ol/wlp -COPY --from=builder /licenses /licenses - -# Set Path Shortcuts -ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \ - LOG_DIR=/liberty/logs \ - WLP_OUTPUT_DIR=/opt/ol/wlp/output \ - WLP_SKIP_MAXPERMSIZE=true \ - OPENJ9_SCC=$OPENJ9_SCC - -# Configure Open Liberty -RUN /opt/ol/wlp/bin/server create \ - && rm -rf $WLP_OUTPUT_DIR/.classCache /output/workarea \ - && rm -rf /opt/ol/wlp/usr/servers/defaultServer/server.env - -# Create symlinks && set permissions for non-root user -RUN mkdir /logs \ - && chown -R 1001:0 /logs \ - && chmod -R g+rw /logs \ - && mkdir -p /opt/ol/wlp/usr/shared/resources/lib.index.cache \ - && ln -s /opt/ol/wlp/usr/shared/resources/lib.index.cache /lib.index.cache \ - && mkdir -p $WLP_OUTPUT_DIR/defaultServer \ - && ln -s $WLP_OUTPUT_DIR/defaultServer /output \ - && ln -s /opt/ol/wlp/usr/servers/defaultServer /config \ - && mkdir -p /config/configDropins/defaults \ - && mkdir -p /config/configDropins/overrides \ - && ln -s /opt/ol/wlp /liberty \ - && ln -s /opt/ol/fixes /fixes \ - && echo "" > /config/configDropins/defaults/open-default-port.xml \ - && chown -R 1001:0 /config \ - && chmod -R g+rw /config \ - && chown -R 1001:0 /opt/ol/wlp/usr \ - && chmod -R g+rw /opt/ol/wlp/usr \ - && chown -R 1001:0 /opt/ol/wlp/output \ - && chmod -R g+rw /opt/ol/wlp/output \ - && chown -R 1001:0 /opt/ol/helpers \ - && chmod -R ug+rwx /opt/ol/helpers \ - && chown -R 1001:0 /opt/ol/fixes \ - && chmod -R g+rwx /opt/ol/fixes \ - && mkdir /etc/wlp \ - && chown -R 1001:0 /etc/wlp \ - && chmod -R g+rw /etc/wlp \ - && if [ -e /etc/instanton.ld.so.cache ]; then chmod g+w /etc/ld.so.cache; fi \ - && ln -s /logs /liberty/logs \ - && mkdir /serviceability \ - && chown -R 1001:0 /serviceability \ - && chmod -R g+rw /serviceability - -# Create a new SCC layer -RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \ - && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache /output/workarea \ - && chown -R 1001:0 /opt/ol/wlp/output \ - && chmod -R g+rwx /opt/ol/wlp/output - -#These settings are needed so that we can run as a different user than 1001 after server warmup -ENV RANDFILE=/tmp/.rnd \ - OPENJ9_JAVA_OPTIONS="-XX:+IgnoreUnrecognizedVMOptions -XX:+IdleTuningGcOnIdle -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,readonly,nonFatal -Dosgi.checkConfiguration=false" - -USER 1001 - -EXPOSE 9080 9443 - -ENTRYPOINT ["/opt/ol/helpers/runtime/docker-server.sh"] -CMD ["/opt/ol/wlp/bin/server", "run", "defaultServer"] - diff --git a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.openjdk25 b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.openjdk25 deleted file mode 100755 index 71bc7950..00000000 --- a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.openjdk25 +++ /dev/null @@ -1,164 +0,0 @@ -FROM registry.access.redhat.com/ubi10/ubi-minimal:latest AS builder - -USER root - -ARG LIBERTY_VERSION=26.0.0.8 -ARG LIBERTY_SHA=6394fee2c842008e9e36f3474c23330bfe467f48 -ARG LIBERTY_DOWNLOAD_URL=https://repo1.maven.org/maven2/io/openliberty/openliberty-kernel/$LIBERTY_VERSION/openliberty-kernel-$LIBERTY_VERSION.zip - -ARG VERBOSE=false - -# If there is a local copy of the image use that instead -COPY resources/ /tmp/ - -# Install Open Liberty -RUN microdnf -y install shadow-utils wget unzip openssl \ - && if [ ! -f /tmp/wlp.zip ]; then wget -q $LIBERTY_DOWNLOAD_URL -U UA-Open-Liberty-Docker -O /tmp/wlp.zip; fi \ - && echo "$LIBERTY_SHA /tmp/wlp.zip" > /tmp/wlp.zip.sha1 \ - && sha1sum -c /tmp/wlp.zip.sha1 \ - && chmod -R u+x /usr/bin \ - && unzip -q /tmp/wlp.zip -d /opt/ol \ - && mkdir -p /licenses \ - && cp /opt/ol/wlp/LICENSE /licenses/ \ - && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ - && chown -R 1001:0 /opt/ol/wlp \ - && chmod -R g+rw /opt/ol/wlp - -# Install dumb-init -RUN set -eux; \ - ARCH="$(uname -m)"; \ - case "${ARCH}" in \ - aarch64|arm64) \ - DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_aarch64'; \ - DUMB_INIT_SHA256=b7d648f97154a99c539b63c55979cd29f005f88430fb383007fe3458340b795e; \ - ;; \ - amd64|x86_64) \ - DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_x86_64'; \ - DUMB_INIT_SHA256=e874b55f3279ca41415d290c512a7ba9d08f98041b28ae7c2acb19a545f1c4df; \ - ;; \ - ppc64el|ppc64le) \ - DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_ppc64le'; \ - DUMB_INIT_SHA256=3d15e80e29f0f4fa1fc686b00613a2220bc37e83a35283d4b4cca1fbd0a5609f; \ - ;; \ - s390x) \ - DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_s390x'; \ - DUMB_INIT_SHA256=47e4601b152fc6dcb1891e66c30ecc62a2939fd7ffd1515a7c30f281cfec53b7; \ - ;;\ - *) \ - echo "Unsupported arch: ${ARCH}"; \ - exit 1; \ - ;; \ - esac; \ - curl -LfsSo /usr/bin/dumb-init ${DUMB_INIT_URL}; \ - echo "${DUMB_INIT_SHA256} */usr/bin/dumb-init" | sha256sum -c -; \ - chmod +x /usr/bin/dumb-init; - -FROM icr.io/appcafe/ibm-semeru-runtimes:open-25-jre-ubi10-micro - -USER root - -ARG LIBERTY_VERSION=26.0.0.8 -ARG LIBERTY_BUILD_LABEL=cl260820260725-1102 - -ARG OPENJ9_SCC=true -ARG VERBOSE=false - -LABEL org.opencontainers.image.authors="Leo Christy Jesuraj, Iain Lewis, Melissa Lee, Kirby Chin" \ - org.opencontainers.image.vendor="Open Liberty" \ - org.opencontainers.image.url="https://openliberty.io/" \ - org.opencontainers.image.source="https://github.com/OpenLiberty/ci.docker" \ - org.opencontainers.image.version="$LIBERTY_VERSION" \ - org.opencontainers.image.revision="$LIBERTY_BUILD_LABEL" \ - liberty.version="$LIBERTY_VERSION" \ - io.openliberty.version="$LIBERTY_VERSION" \ - vendor="Open Liberty" \ - name="Open Liberty" \ - version="$LIBERTY_VERSION" \ - summary="Image for Open Liberty with IBM Semeru Runtime Open Edition OpenJDK 25 with OpenJ9 and UBI 10 micro" \ - description="This image contains the Open Liberty runtime with IBM Semeru Runtime Open Edition OpenJDK 25 with OpenJ9 and Red Hat UBI 10 micro as the base OS. For more information on this image please see https://github.com/OpenLiberty/ci.docker#building-an-application-image" - -COPY NOTICES /opt/ol/NOTICES -COPY helpers /opt/ol/helpers -COPY fixes/ /opt/ol/fixes/ - -# Add default user 1001 and create wlp with right user/permissions before copying -RUN echo "1001:x:1001:0::/home/1001:/sbin/nologin" >> /etc/passwd \ - && mkdir -p /home/1001 \ - && chown 1001:0 /home/1001 \ - && mkdir -p /opt/ol/wlp \ - && chown -R 1001:0 /opt/ol/wlp \ - && chmod -R g+rw /opt/ol/wlp - -COPY --from=builder /usr/bin/dumb-init /usr/bin/dumb-init -COPY --from=builder /usr/bin/awk /usr/bin/awk -COPY --from=builder /usr/bin/wget /usr/bin/wget - -COPY --from=builder /usr/lib64/libpsl.so* /usr/lib64/ -COPY --from=builder /usr/lib64/libmpfr.so* /usr/lib64/ - -# Copy the runtime and licenses -COPY --from=builder --chown=1001:0 /opt/ol/wlp /opt/ol/wlp -COPY --from=builder /licenses /licenses - -# Set Path Shortcuts -ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \ - LOG_DIR=/liberty/logs \ - WLP_OUTPUT_DIR=/opt/ol/wlp/output \ - WLP_SKIP_MAXPERMSIZE=true \ - OPENJ9_SCC=$OPENJ9_SCC - -# Configure Open Liberty -RUN /opt/ol/wlp/bin/server create \ - && rm -rf $WLP_OUTPUT_DIR/.classCache /output/workarea \ - && rm -rf /opt/ol/wlp/usr/servers/defaultServer/server.env - -# Create symlinks && set permissions for non-root user -RUN mkdir /logs \ - && chown -R 1001:0 /logs \ - && chmod -R g+rw /logs \ - && mkdir -p /opt/ol/wlp/usr/shared/resources/lib.index.cache \ - && ln -s /opt/ol/wlp/usr/shared/resources/lib.index.cache /lib.index.cache \ - && mkdir -p $WLP_OUTPUT_DIR/defaultServer \ - && ln -s $WLP_OUTPUT_DIR/defaultServer /output \ - && ln -s /opt/ol/wlp/usr/servers/defaultServer /config \ - && mkdir -p /config/configDropins/defaults \ - && mkdir -p /config/configDropins/overrides \ - && ln -s /opt/ol/wlp /liberty \ - && ln -s /opt/ol/fixes /fixes \ - && echo "" > /config/configDropins/defaults/open-default-port.xml \ - && chown -R 1001:0 /config \ - && chmod -R g+rw /config \ - && chown -R 1001:0 /opt/ol/wlp/usr \ - && chmod -R g+rw /opt/ol/wlp/usr \ - && chown -R 1001:0 /opt/ol/wlp/output \ - && chmod -R g+rw /opt/ol/wlp/output \ - && chown -R 1001:0 /opt/ol/helpers \ - && chmod -R ug+rwx /opt/ol/helpers \ - && chown -R 1001:0 /opt/ol/fixes \ - && chmod -R g+rwx /opt/ol/fixes \ - && mkdir /etc/wlp \ - && chown -R 1001:0 /etc/wlp \ - && chmod -R g+rw /etc/wlp \ - && if [ -e /etc/instanton.ld.so.cache ]; then chmod g+w /etc/ld.so.cache; fi \ - && ln -s /logs /liberty/logs \ - && mkdir /serviceability \ - && chown -R 1001:0 /serviceability \ - && chmod -R g+rw /serviceability - -# Create a new SCC layer -RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \ - && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache /output/workarea \ - && chown -R 1001:0 /opt/ol/wlp/output \ - && chmod -R g+rwx /opt/ol/wlp/output - -#These settings are needed so that we can run as a different user than 1001 after server warmup -ENV RANDFILE=/tmp/.rnd \ - OPENJ9_JAVA_OPTIONS="-XX:+IgnoreUnrecognizedVMOptions -XX:+IdleTuningGcOnIdle -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,readonly,nonFatal -Dosgi.checkConfiguration=false" - -USER 1001 - -EXPOSE 9080 9443 - -ENTRYPOINT ["/opt/ol/helpers/runtime/docker-server.sh"] -CMD ["/opt/ol/wlp/bin/server", "run", "defaultServer"] - diff --git a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.openjdk8 b/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.openjdk8 deleted file mode 100755 index f6fb8586..00000000 --- a/releases/26.0.0.8/kernel-slim/Dockerfile.ubi10-micro.openjdk8 +++ /dev/null @@ -1,164 +0,0 @@ -FROM registry.access.redhat.com/ubi10/ubi-minimal:latest AS builder - -USER root - -ARG LIBERTY_VERSION=26.0.0.8 -ARG LIBERTY_SHA=6394fee2c842008e9e36f3474c23330bfe467f48 -ARG LIBERTY_DOWNLOAD_URL=https://repo1.maven.org/maven2/io/openliberty/openliberty-kernel/$LIBERTY_VERSION/openliberty-kernel-$LIBERTY_VERSION.zip - -ARG VERBOSE=false - -# If there is a local copy of the image use that instead -COPY resources/ /tmp/ - -# Install Open Liberty -RUN microdnf -y install shadow-utils wget unzip openssl \ - && if [ ! -f /tmp/wlp.zip ]; then wget -q $LIBERTY_DOWNLOAD_URL -U UA-Open-Liberty-Docker -O /tmp/wlp.zip; fi \ - && echo "$LIBERTY_SHA /tmp/wlp.zip" > /tmp/wlp.zip.sha1 \ - && sha1sum -c /tmp/wlp.zip.sha1 \ - && chmod -R u+x /usr/bin \ - && unzip -q /tmp/wlp.zip -d /opt/ol \ - && mkdir -p /licenses \ - && cp /opt/ol/wlp/LICENSE /licenses/ \ - && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ - && chown -R 1001:0 /opt/ol/wlp \ - && chmod -R g+rw /opt/ol/wlp - -# Install dumb-init -RUN set -eux; \ - ARCH="$(uname -m)"; \ - case "${ARCH}" in \ - aarch64|arm64) \ - DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_aarch64'; \ - DUMB_INIT_SHA256=b7d648f97154a99c539b63c55979cd29f005f88430fb383007fe3458340b795e; \ - ;; \ - amd64|x86_64) \ - DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_x86_64'; \ - DUMB_INIT_SHA256=e874b55f3279ca41415d290c512a7ba9d08f98041b28ae7c2acb19a545f1c4df; \ - ;; \ - ppc64el|ppc64le) \ - DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_ppc64le'; \ - DUMB_INIT_SHA256=3d15e80e29f0f4fa1fc686b00613a2220bc37e83a35283d4b4cca1fbd0a5609f; \ - ;; \ - s390x) \ - DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_s390x'; \ - DUMB_INIT_SHA256=47e4601b152fc6dcb1891e66c30ecc62a2939fd7ffd1515a7c30f281cfec53b7; \ - ;;\ - *) \ - echo "Unsupported arch: ${ARCH}"; \ - exit 1; \ - ;; \ - esac; \ - curl -LfsSo /usr/bin/dumb-init ${DUMB_INIT_URL}; \ - echo "${DUMB_INIT_SHA256} */usr/bin/dumb-init" | sha256sum -c -; \ - chmod +x /usr/bin/dumb-init; - -FROM icr.io/appcafe/ibm-semeru-runtimes:open-8-jre-ubi10-micro - -USER root - -ARG LIBERTY_VERSION=26.0.0.8 -ARG LIBERTY_BUILD_LABEL=cl260820260725-1102 - -ARG OPENJ9_SCC=true -ARG VERBOSE=false - -LABEL org.opencontainers.image.authors="Leo Christy Jesuraj, Iain Lewis, Melissa Lee, Kirby Chin" \ - org.opencontainers.image.vendor="Open Liberty" \ - org.opencontainers.image.url="https://openliberty.io/" \ - org.opencontainers.image.source="https://github.com/OpenLiberty/ci.docker" \ - org.opencontainers.image.version="$LIBERTY_VERSION" \ - org.opencontainers.image.revision="$LIBERTY_BUILD_LABEL" \ - liberty.version="$LIBERTY_VERSION" \ - io.openliberty.version="$LIBERTY_VERSION" \ - vendor="Open Liberty" \ - name="Open Liberty" \ - version="$LIBERTY_VERSION" \ - summary="Image for Open Liberty with IBM Semeru Runtime Open Edition OpenJDK 8 with OpenJ9 and UBI 10 micro" \ - description="This image contains the Open Liberty runtime with IBM Semeru Runtime Open Edition OpenJDK 8 with OpenJ9 and Red Hat UBI 10 micro as the base OS. For more information on this image please see https://github.com/OpenLiberty/ci.docker#building-an-application-image" - -COPY NOTICES /opt/ol/NOTICES -COPY helpers /opt/ol/helpers -COPY fixes/ /opt/ol/fixes/ - -# Add default user 1001 and create wlp with right user/permissions before copying -RUN echo "1001:x:1001:0::/home/1001:/sbin/nologin" >> /etc/passwd \ - && mkdir -p /home/1001 \ - && chown 1001:0 /home/1001 \ - && mkdir -p /opt/ol/wlp \ - && chown -R 1001:0 /opt/ol/wlp \ - && chmod -R g+rw /opt/ol/wlp - -COPY --from=builder /usr/bin/dumb-init /usr/bin/dumb-init -COPY --from=builder /usr/bin/awk /usr/bin/awk -COPY --from=builder /usr/bin/wget /usr/bin/wget - -COPY --from=builder /usr/lib64/libpsl.so* /usr/lib64/ -COPY --from=builder /usr/lib64/libmpfr.so* /usr/lib64/ - -# Copy the runtime and licenses -COPY --from=builder --chown=1001:0 /opt/ol/wlp /opt/ol/wlp -COPY --from=builder /licenses /licenses - -# Set Path Shortcuts -ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \ - LOG_DIR=/liberty/logs \ - WLP_OUTPUT_DIR=/opt/ol/wlp/output \ - WLP_SKIP_MAXPERMSIZE=true \ - OPENJ9_SCC=$OPENJ9_SCC - -# Configure Open Liberty -RUN /opt/ol/wlp/bin/server create \ - && rm -rf $WLP_OUTPUT_DIR/.classCache /output/workarea \ - && rm -rf /opt/ol/wlp/usr/servers/defaultServer/server.env - -# Create symlinks && set permissions for non-root user -RUN mkdir /logs \ - && chown -R 1001:0 /logs \ - && chmod -R g+rw /logs \ - && mkdir -p /opt/ol/wlp/usr/shared/resources/lib.index.cache \ - && ln -s /opt/ol/wlp/usr/shared/resources/lib.index.cache /lib.index.cache \ - && mkdir -p $WLP_OUTPUT_DIR/defaultServer \ - && ln -s $WLP_OUTPUT_DIR/defaultServer /output \ - && ln -s /opt/ol/wlp/usr/servers/defaultServer /config \ - && mkdir -p /config/configDropins/defaults \ - && mkdir -p /config/configDropins/overrides \ - && ln -s /opt/ol/wlp /liberty \ - && ln -s /opt/ol/fixes /fixes \ - && echo "" > /config/configDropins/defaults/open-default-port.xml \ - && chown -R 1001:0 /config \ - && chmod -R g+rw /config \ - && chown -R 1001:0 /opt/ol/wlp/usr \ - && chmod -R g+rw /opt/ol/wlp/usr \ - && chown -R 1001:0 /opt/ol/wlp/output \ - && chmod -R g+rw /opt/ol/wlp/output \ - && chown -R 1001:0 /opt/ol/helpers \ - && chmod -R ug+rwx /opt/ol/helpers \ - && chown -R 1001:0 /opt/ol/fixes \ - && chmod -R g+rwx /opt/ol/fixes \ - && mkdir /etc/wlp \ - && chown -R 1001:0 /etc/wlp \ - && chmod -R g+rw /etc/wlp \ - && if [ -e /etc/instanton.ld.so.cache ]; then chmod g+w /etc/ld.so.cache; fi \ - && ln -s /logs /liberty/logs \ - && mkdir /serviceability \ - && chown -R 1001:0 /serviceability \ - && chmod -R g+rw /serviceability - -# Create a new SCC layer -RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \ - && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache /output/workarea \ - && chown -R 1001:0 /opt/ol/wlp/output \ - && chmod -R g+rwx /opt/ol/wlp/output - -#These settings are needed so that we can run as a different user than 1001 after server warmup -ENV RANDFILE=/tmp/.rnd \ - OPENJ9_JAVA_OPTIONS="-XX:+IgnoreUnrecognizedVMOptions -XX:+IdleTuningGcOnIdle -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,readonly,nonFatal -Dosgi.checkConfiguration=false" - -USER 1001 - -EXPOSE 9080 9443 - -ENTRYPOINT ["/opt/ol/helpers/runtime/docker-server.sh"] -CMD ["/opt/ol/wlp/bin/server", "run", "defaultServer"] - diff --git a/releases/26.0.0.8/kernel-slim/helpers/build/populate_scc.sh b/releases/26.0.0.8/kernel-slim/helpers/build/populate_scc.sh index 1c1fc7dd..1012a07a 100755 --- a/releases/26.0.0.8/kernel-slim/helpers/build/populate_scc.sh +++ b/releases/26.0.0.8/kernel-slim/helpers/build/populate_scc.sh @@ -81,10 +81,10 @@ do -s Size of the SCC in megabytes (m suffix required). (Default: $SCC_SIZE) -t Trim the SCC to eliminate most of the free space, if any. -d Don't trim the SCC. - -w Use curl/wget to warm an endpoint during SCC creation. (Default: $WARM_ENDPOINT) + -w Use curl to warm an endpoint during SCC creation. (Default: $WARM_ENDPOINT) -c Do not warm an endpoint during SCC creation. -u The URL endpoint to warm during SCC creation. (Default: $WARM_ENDPOINT_URL) - -m Use curl/wget to warm the openapi endpoint during SCC creation. (Default: $WARM_OPENAPI_ENDPOINT) + -m Use curl to warm the openapi endpoint during SCC creation. (Default: $WARM_OPENAPI_ENDPOINT) -l Do not warm the openapi endpoint during SCC creation. -o The Open API URL endpoint to warm during SCC creation. (Default: $WARM_ENDPOINT_OPENAPI_URL) @@ -105,13 +105,6 @@ done OLD_UMASK=`umask` umask 002 # 002 is required to provide group rw permission to the cache when `-Xshareclasses:groupAccess` options is used -# Use curl/wget to warm endpoints -if command -v curl > /dev/null 2>&1; then - http_get() { curl --silent --output /dev/null --show-error --fail --max-time 5 "$1"; } -else - http_get() { wget -q -O /dev/null -T 5 "$1"; } -fi - # Explicity create a class cache layer for this image layer here rather than allowing # `server start` to do it, which will lead to problems because multiple JVMs will be started. java $CREATE_LAYER -Xscmx$SCC_SIZE -version @@ -124,11 +117,11 @@ then if [ ${WARM_ENDPOINT} == true ] then - http_get ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing" + curl --silent --output /dev/null --show-error --fail --max-time 5 ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing" fi if [ ${WARM_OPENAPI_ENDPOINT} == true ] then - http_get ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing" + curl --silent --output /dev/null --show-error --fail --max-time 5 ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing" fi /opt/ol/wlp/bin/server stop @@ -159,11 +152,11 @@ do if [ ${WARM_ENDPOINT} == true ] then - http_get ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing" + curl --silent --output /dev/null --show-error --fail --max-time 5 ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing" fi if [ ${WARM_OPENAPI_ENDPOINT} == true ] then - http_get ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing" + curl --silent --output /dev/null --show-error --fail --max-time 5 ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing" fi /opt/ol/wlp/bin/server stop diff --git a/releases/latest/kernel-slim/Dockerfile.ubi10-micro.ibmjava8 b/releases/latest/kernel-slim/Dockerfile.ubi10-micro.ibmjava8 index a561d267..5a7555d5 100644 --- a/releases/latest/kernel-slim/Dockerfile.ubi10-micro.ibmjava8 +++ b/releases/latest/kernel-slim/Dockerfile.ubi10-micro.ibmjava8 @@ -62,7 +62,7 @@ RUN set -eux; \ echo "${DUMB_INIT_SHA256} */usr/bin/dumb-init" | sha256sum -c -; \ chmod +x /usr/bin/dumb-init; -FROM ibmjava:8-ubi10-micro +FROM icr.io/appcafe/ibmjava:8-jre-ubi10-micro USER root