From 66867d2868a7a34c5492c43cdfc755218da22ac7 Mon Sep 17 00:00:00 2001 From: Kirby Chin <37311900+kabicin@users.noreply.github.com> Date: Fri, 12 Jun 2026 13:41:05 -0400 Subject: [PATCH 1/6] add ubi10 files --- .../full/Dockerfile.ubi10-minimal.openjdk11 | 51 +++++ .../full/Dockerfile.ubi10-minimal.openjdk17 | 51 +++++ .../full/Dockerfile.ubi10-minimal.openjdk21 | 51 +++++ .../full/Dockerfile.ubi10-minimal.openjdk25 | 51 +++++ .../full/Dockerfile.ubi10-minimal.openjdk8 | 51 +++++ .../kernel/Dockerfile.ubi10-minimal.openjdk11 | 185 ++++++++++++++++++ .../kernel/Dockerfile.ubi10-minimal.openjdk17 | 185 ++++++++++++++++++ .../kernel/Dockerfile.ubi10-minimal.openjdk21 | 185 ++++++++++++++++++ .../kernel/Dockerfile.ubi10-minimal.openjdk25 | 185 ++++++++++++++++++ .../kernel/Dockerfile.ubi10-minimal.openjdk8 | 185 ++++++++++++++++++ 10 files changed, 1180 insertions(+) create mode 100644 ga/latest/full/Dockerfile.ubi10-minimal.openjdk11 create mode 100644 ga/latest/full/Dockerfile.ubi10-minimal.openjdk17 create mode 100644 ga/latest/full/Dockerfile.ubi10-minimal.openjdk21 create mode 100644 ga/latest/full/Dockerfile.ubi10-minimal.openjdk25 create mode 100644 ga/latest/full/Dockerfile.ubi10-minimal.openjdk8 create mode 100644 ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk11 create mode 100644 ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk17 create mode 100644 ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk21 create mode 100644 ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk25 create mode 100644 ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk8 diff --git a/ga/latest/full/Dockerfile.ubi10-minimal.openjdk11 b/ga/latest/full/Dockerfile.ubi10-minimal.openjdk11 new file mode 100644 index 000000000..d87df8254 --- /dev/null +++ b/ga/latest/full/Dockerfile.ubi10-minimal.openjdk11 @@ -0,0 +1,51 @@ +# (C) Copyright IBM Corporation 2023. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +ARG PARENT_IMAGE=icr.io/appcafe/websphere-liberty:kernel-java11-openj9-ubi10-minimal +FROM $PARENT_IMAGE AS installBundle + +ARG VERBOSE=false +ARG REPOSITORIES_PROPERTIES="" + +# If there is a local copy of the repository use that instead +COPY resources/ /tmp/ + +# Install the base bundle +RUN set -eux; \ + if [ ! -z "$REPOSITORIES_PROPERTIES" ]; then \ + mkdir /opt/ibm/wlp/etc/; \ + echo "$REPOSITORIES_PROPERTIES" > /opt/ibm/wlp/etc/repositories.properties; \ + installUtility install --acceptLicense baseBundle; \ + rm /opt/ibm/wlp/etc/repositories.properties; \ + elif [ -f /tmp/wlpRepo.zip ]; then \ + installUtility install --acceptLicense baseBundle --from=/tmp/wlpRepo.zip; \ + else \ + installUtility install --acceptLicense baseBundle; \ + fi; \ + rm -rf /output/workarea /output/logs; \ + find /opt/ibm/wlp ! -perm -g=rw -print0 | xargs -r -0 chmod g+rw; + +ARG PARENT_IMAGE=icr.io/appcafe/websphere-liberty:kernel-java11-openj9-ubi10-minimal +FROM $PARENT_IMAGE +ARG VERBOSE=false + +# Copy the runtime +COPY --from=installBundle --chown=1001:0 /opt/ibm/wlp /opt/ibm/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/ibm/wlp/output ! -perm -g=rwx -print0 | xargs -0 -r chmod g+rwx diff --git a/ga/latest/full/Dockerfile.ubi10-minimal.openjdk17 b/ga/latest/full/Dockerfile.ubi10-minimal.openjdk17 new file mode 100644 index 000000000..4a40168e7 --- /dev/null +++ b/ga/latest/full/Dockerfile.ubi10-minimal.openjdk17 @@ -0,0 +1,51 @@ +# (C) Copyright IBM Corporation 2025. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +ARG PARENT_IMAGE=icr.io/appcafe/websphere-liberty:kernel-java17-openj9-ubi10-minimal +FROM $PARENT_IMAGE AS installBundle + +ARG VERBOSE=false +ARG REPOSITORIES_PROPERTIES="" + +# If there is a local copy of the repository use that instead +COPY resources/ /tmp/ + +# Install the base bundle +RUN set -eux; \ + if [ ! -z "$REPOSITORIES_PROPERTIES" ]; then \ + mkdir /opt/ibm/wlp/etc/; \ + echo "$REPOSITORIES_PROPERTIES" > /opt/ibm/wlp/etc/repositories.properties; \ + installUtility install --acceptLicense baseBundle; \ + rm /opt/ibm/wlp/etc/repositories.properties; \ + elif [ -f /tmp/wlpRepo.zip ]; then \ + installUtility install --acceptLicense baseBundle --from=/tmp/wlpRepo.zip; \ + else \ + installUtility install --acceptLicense baseBundle; \ + fi; \ + rm -rf /output/workarea /output/logs; \ + find /opt/ibm/wlp ! -perm -g=rw -print0 | xargs -r -0 chmod g+rw; + +ARG PARENT_IMAGE=icr.io/appcafe/websphere-liberty:kernel-java17-openj9-ubi10-minimal +FROM $PARENT_IMAGE +ARG VERBOSE=false + +# Copy the runtime +COPY --from=installBundle --chown=1001:0 /opt/ibm/wlp /opt/ibm/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/ibm/wlp/output ! -perm -g=rwx -print0 | xargs -0 -r chmod g+rwx diff --git a/ga/latest/full/Dockerfile.ubi10-minimal.openjdk21 b/ga/latest/full/Dockerfile.ubi10-minimal.openjdk21 new file mode 100644 index 000000000..5a786b025 --- /dev/null +++ b/ga/latest/full/Dockerfile.ubi10-minimal.openjdk21 @@ -0,0 +1,51 @@ +# (C) Copyright IBM Corporation 2023. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +ARG PARENT_IMAGE=icr.io/appcafe/websphere-liberty:kernel-java21-openj9-ubi10-minimal +FROM $PARENT_IMAGE AS installBundle + +ARG VERBOSE=false +ARG REPOSITORIES_PROPERTIES="" + +# If there is a local copy of the repository use that instead +COPY resources/ /tmp/ + +# Install the base bundle +RUN set -eux; \ + if [ ! -z "$REPOSITORIES_PROPERTIES" ]; then \ + mkdir /opt/ibm/wlp/etc/; \ + echo "$REPOSITORIES_PROPERTIES" > /opt/ibm/wlp/etc/repositories.properties; \ + installUtility install --acceptLicense baseBundle; \ + rm /opt/ibm/wlp/etc/repositories.properties; \ + elif [ -f /tmp/wlpRepo.zip ]; then \ + installUtility install --acceptLicense baseBundle --from=/tmp/wlpRepo.zip; \ + else \ + installUtility install --acceptLicense baseBundle; \ + fi; \ + rm -rf /output/workarea /output/logs; \ + find /opt/ibm/wlp ! -perm -g=rw -print0 | xargs -r -0 chmod g+rw; + +ARG PARENT_IMAGE=icr.io/appcafe/websphere-liberty:kernel-java21-openj9-ubi10-minimal +FROM $PARENT_IMAGE +ARG VERBOSE=false + +# Copy the runtime +COPY --from=installBundle --chown=1001:0 /opt/ibm/wlp /opt/ibm/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/ibm/wlp/output ! -perm -g=rwx -print0 | xargs -0 -r chmod g+rwx diff --git a/ga/latest/full/Dockerfile.ubi10-minimal.openjdk25 b/ga/latest/full/Dockerfile.ubi10-minimal.openjdk25 new file mode 100644 index 000000000..0dfca93e5 --- /dev/null +++ b/ga/latest/full/Dockerfile.ubi10-minimal.openjdk25 @@ -0,0 +1,51 @@ +# (C) Copyright IBM Corporation 2025. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +ARG PARENT_IMAGE=icr.io/appcafe/websphere-liberty:kernel-java25-openj9-ubi10-minimal +FROM $PARENT_IMAGE AS installBundle + +ARG VERBOSE=false +ARG REPOSITORIES_PROPERTIES="" + +# If there is a local copy of the repository use that instead +COPY resources/ /tmp/ + +# Install the base bundle +RUN set -eux; \ + if [ ! -z "$REPOSITORIES_PROPERTIES" ]; then \ + mkdir /opt/ibm/wlp/etc/; \ + echo "$REPOSITORIES_PROPERTIES" > /opt/ibm/wlp/etc/repositories.properties; \ + installUtility install --acceptLicense baseBundle; \ + rm /opt/ibm/wlp/etc/repositories.properties; \ + elif [ -f /tmp/wlpRepo.zip ]; then \ + installUtility install --acceptLicense baseBundle --from=/tmp/wlpRepo.zip; \ + else \ + installUtility install --acceptLicense baseBundle; \ + fi; \ + rm -rf /output/workarea /output/logs; \ + find /opt/ibm/wlp ! -perm -g=rw -print0 | xargs -r -0 chmod g+rw; + +ARG PARENT_IMAGE=icr.io/appcafe/websphere-liberty:kernel-java25-openj9-ubi10-minimal +FROM $PARENT_IMAGE +ARG VERBOSE=false + +# Copy the runtime +COPY --from=installBundle --chown=1001:0 /opt/ibm/wlp /opt/ibm/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/ibm/wlp/output ! -perm -g=rwx -print0 | xargs -0 -r chmod g+rwx diff --git a/ga/latest/full/Dockerfile.ubi10-minimal.openjdk8 b/ga/latest/full/Dockerfile.ubi10-minimal.openjdk8 new file mode 100644 index 000000000..9d4f540df --- /dev/null +++ b/ga/latest/full/Dockerfile.ubi10-minimal.openjdk8 @@ -0,0 +1,51 @@ +# (C) Copyright IBM Corporation 2023. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +ARG PARENT_IMAGE=icr.io/appcafe/websphere-liberty:kernel-java8-openj9-ubi10-minimal +FROM $PARENT_IMAGE AS installBundle + +ARG VERBOSE=false +ARG REPOSITORIES_PROPERTIES="" + +# If there is a local copy of the repository use that instead +COPY resources/ /tmp/ + +# Install the base bundle +RUN set -eux; \ + if [ ! -z "$REPOSITORIES_PROPERTIES" ]; then \ + mkdir /opt/ibm/wlp/etc/; \ + echo "$REPOSITORIES_PROPERTIES" > /opt/ibm/wlp/etc/repositories.properties; \ + installUtility install --acceptLicense baseBundle; \ + rm /opt/ibm/wlp/etc/repositories.properties; \ + elif [ -f /tmp/wlpRepo.zip ]; then \ + installUtility install --acceptLicense baseBundle --from=/tmp/wlpRepo.zip; \ + else \ + installUtility install --acceptLicense baseBundle; \ + fi; \ + rm -rf /output/workarea /output/logs; \ + find /opt/ibm/wlp ! -perm -g=rw -print0 | xargs -r -0 chmod g+rw; + +ARG PARENT_IMAGE=icr.io/appcafe/websphere-liberty:kernel-java8-openj9-ubi10-minimal +FROM $PARENT_IMAGE +ARG VERBOSE=false + +# Copy the runtime +COPY --from=installBundle --chown=1001:0 /opt/ibm/wlp /opt/ibm/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/ibm/wlp/output ! -perm -g=rwx -print0 | xargs -0 -r chmod g+rwx diff --git a/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk11 b/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk11 new file mode 100644 index 000000000..f3090734f --- /dev/null +++ b/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk11 @@ -0,0 +1,185 @@ +# (C) Copyright IBM Corporation 2023. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +FROM icr.io/appcafe/ibm-semeru-runtimes:open-11-jre-ubi10-minimal AS getRuntime + +USER root + +ARG VERBOSE=false + +# Install WebSphere Liberty +ARG LIBERTY_VERSION=26.0.0.6 +ARG LIBERTY_URL +ARG DOWNLOAD_OPTIONS="" +ARG LIBERTY_SHA=7a614ebeb2fc9c6c542cc973b0575c0a8515173d + +# If there is a local copy of the image use that instead +COPY resources/ /tmp/ + +RUN microdnf -y install shadow-utils unzip wget findutils openssl \ + && mkdir -p /licenses \ + && useradd -u 1001 -r -g 0 -s /usr/sbin/nologin default \ + && LIBERTY_URL=${LIBERTY_URL:-$(wget -q -O - https://public.dhe.ibm.com/ibmdl/export/pub/software/websphere/wasdev/downloads/wlp/index.yml | grep -E "^\s*kernel:.*${LIBERTY_VERSION}\.zip" | sed -n 's/\s*kernel:\s//p' | tr -d '\r' )} \ + && if [ ! -f /tmp/wlp.zip ]; then wget $DOWNLOAD_OPTIONS $LIBERTY_URL -U UA-IBM-WebSphere-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 g+x /usr/bin \ + && unzip -q /tmp/wlp.zip -d /opt/ibm \ + && chown -R 1001:0 /opt/ibm/wlp \ + && chmod -R g+rw /opt/ibm/wlp \ + && cp -a /opt/ibm/wlp/lafiles/. /licenses/ + +FROM icr.io/appcafe/ibm-semeru-runtimes:open-11-jre-ubi10-minimal + +USER root + +ARG VERBOSE=false +ARG OPENJ9_SCC=true + +ARG LIBERTY_VERSION=26.0.0.6 +ARG LIBERTY_BUILD_LABEL=cl260620260531-0302 + +LABEL org.opencontainers.image.authors="Leo Christy Jesuraj, Iain Lewis, Melissa Lee, Kirby Chin" \ + org.opencontainers.image.vendor="IBM" \ + org.opencontainers.image.url="https://github.com/WASdev/ci.docker" \ + org.opencontainers.image.documentation="https://www.ibm.com/support/knowledgecenter/SSAW57_liberty/com.ibm.websphere.wlp.nd.multiplatform.doc/ae/cwlp_about.html" \ + org.opencontainers.image.version="$LIBERTY_VERSION" \ + org.opencontainers.image.revision="$LIBERTY_BUILD_LABEL" \ + org.opencontainers.image.description="This image contains the WebSphere Liberty runtime with IBM Semeru Runtime Open Edition OpenJDK with OpenJ9 and Red Hat's UBI 9 minimal as the base OS. For more information on this image please see https://ibm.biz/wl-app-image-template" \ + org.opencontainers.image.title="IBM WebSphere Liberty" \ + liberty.version="$LIBERTY_VERSION" \ + com.ibm.websphere.liberty.version="$LIBERTY_VERSION" \ + vendor="IBM" \ + name="IBM WebSphere Liberty" \ + version="$LIBERTY_VERSION" \ + summary="Image for WebSphere Liberty with IBM Semeru Runtime Open Edition OpenJDK with OpenJ9 and Red Hat's UBI 9 minimal" \ + description="This image contains the WebSphere Liberty runtime with IBM Semeru Runtime Open Edition OpenJDK with OpenJ9 and Red Hat's UBI 9 minimal as the base OS. For more information on this image please see https://ibm.biz/wl-app-image-template" + +ENV PATH=$PATH:/opt/ibm/wlp/bin:/opt/ibm/helpers/build:/opt/ibm/helpers/runtime + +# Add labels for consumption by IBM Product Insights +LABEL "ProductID"="fbf6a96d49214c0abc6a3bc5da6e48cd" \ + "ProductName"="WebSphere Application Server Liberty" \ + "ProductVersion"="$LIBERTY_VERSION" \ + "BuildLabel"="$LIBERTY_BUILD_LABEL" + +# 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; + +# Add default user 1001 and create wlp with right user/permissions before copying +RUN microdnf -y install shadow-utils findutils openssl \ + && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ + && mkdir -p /opt/ibm/wlp \ + && chown -R 1001:0 /opt/ibm/wlp \ + && chmod -R g+rw /opt/ibm/wlp \ + && microdnf remove -y shadow-utils \ + && microdnf clean all + +# Copy the runtime and licenses +COPY --from=getRuntime --chown=1001:0 /opt/ibm/wlp /opt/ibm/wlp +COPY --from=getRuntime /licenses /licenses + +# Set Path Shortcuts +ENV LOG_DIR=/liberty/logs \ + WLP_OUTPUT_DIR=/opt/ibm/wlp/output \ + OPENJ9_SCC=$OPENJ9_SCC + +# Configure WebSphere Liberty +RUN /opt/ibm/wlp/bin/server create \ + && rm -rf $WLP_OUTPUT_DIR/.classCache /output/workarea \ + && rm -rf /opt/ibm/wlp/usr/servers/defaultServer/server.env + +COPY NOTICES /opt/ibm/NOTICES +COPY helpers/ /opt/ibm/helpers/ +COPY fixes/ /opt/ibm/fixes/ + +# Create symlinks && set permissions for non-root user +RUN mkdir /logs \ + && chown -R 1001:0 /logs \ + && chmod -R g+rw /logs \ + && mkdir /etc/wlp \ + && mkdir -p /opt/ibm/wlp/usr/shared/resources/lib.index.cache \ + && mkdir -p /home/default \ + && mkdir /output \ + && chmod -t /output \ + && rm -rf /output \ + && ln -s $WLP_OUTPUT_DIR/defaultServer /output \ + && ln -s /opt/ibm/wlp/usr/servers/defaultServer /config \ + && ln -s /opt/ibm/wlp /liberty \ + && ln -s /opt/ibm/fixes /fixes \ + && ln -s /opt/ibm/wlp/usr/shared/resources/lib.index.cache /lib.index.cache \ + && mkdir -p /config/configDropins/defaults \ + && mkdir -p /config/configDropins/overrides \ + && chown -R 1001:0 /config \ + && chmod -R g+rw /config \ + && chown -R 1001:0 /opt/ibm/helpers \ + && chmod -R ug+rwx /opt/ibm/helpers \ + && chown -R 1001:0 /opt/ibm/fixes \ + && chmod -R g+rwx /opt/ibm/fixes \ + && chown -R 1001:0 /opt/ibm/wlp/usr \ + && chmod -R g+rw /opt/ibm/wlp/usr \ + && chown -R 1001:0 /opt/ibm/wlp/output \ + && chmod -R g+rw /opt/ibm/wlp/output \ + && 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 \ + && chown -R 1001:0 /home/default \ + && chmod -R g+rw /home/default \ + && 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/ibm/wlp/output \ + && chmod -R g+rwx /opt/ibm/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/ibm/helpers/runtime/docker-server.sh"] +CMD ["/opt/ibm/wlp/bin/server", "run", "defaultServer"] diff --git a/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk17 b/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk17 new file mode 100644 index 000000000..b71a02173 --- /dev/null +++ b/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk17 @@ -0,0 +1,185 @@ +# (C) Copyright IBM Corporation 2025. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +FROM icr.io/appcafe/ibm-semeru-runtimes:open-17-jre-ubi10-minimal AS getRuntime + +USER root + +ARG VERBOSE=false + +# Install WebSphere Liberty +ARG LIBERTY_VERSION=26.0.0.6 +ARG LIBERTY_URL +ARG DOWNLOAD_OPTIONS="" +ARG LIBERTY_SHA=7a614ebeb2fc9c6c542cc973b0575c0a8515173d + +# If there is a local copy of the image use that instead +COPY resources/ /tmp/ + +RUN microdnf -y install shadow-utils unzip wget findutils openssl \ + && mkdir -p /licenses \ + && useradd -u 1001 -r -g 0 -s /usr/sbin/nologin default \ + && LIBERTY_URL=${LIBERTY_URL:-$(wget -q -O - https://public.dhe.ibm.com/ibmdl/export/pub/software/websphere/wasdev/downloads/wlp/index.yml | grep -E "^\s*kernel:.*${LIBERTY_VERSION}\.zip" | sed -n 's/\s*kernel:\s//p' | tr -d '\r' )} \ + && if [ ! -f /tmp/wlp.zip ]; then wget $DOWNLOAD_OPTIONS $LIBERTY_URL -U UA-IBM-WebSphere-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 g+x /usr/bin \ + && unzip -q /tmp/wlp.zip -d /opt/ibm \ + && chown -R 1001:0 /opt/ibm/wlp \ + && chmod -R g+rw /opt/ibm/wlp \ + && cp -a /opt/ibm/wlp/lafiles/. /licenses/ + +FROM icr.io/appcafe/ibm-semeru-runtimes:open-17-jre-ubi10-minimal + +USER root + +ARG VERBOSE=false +ARG OPENJ9_SCC=true + +ARG LIBERTY_VERSION=26.0.0.6 +ARG LIBERTY_BUILD_LABEL=cl260620260531-0302 + +LABEL org.opencontainers.image.authors="Leo Christy Jesuraj, Iain Lewis, Melissa Lee, Kirby Chin" \ + org.opencontainers.image.vendor="IBM" \ + org.opencontainers.image.url="https://github.com/WASdev/ci.docker" \ + org.opencontainers.image.documentation="https://www.ibm.com/support/knowledgecenter/SSAW57_liberty/com.ibm.websphere.wlp.nd.multiplatform.doc/ae/cwlp_about.html" \ + org.opencontainers.image.version="$LIBERTY_VERSION" \ + org.opencontainers.image.revision="$LIBERTY_BUILD_LABEL" \ + org.opencontainers.image.description="This image contains the WebSphere Liberty runtime with IBM Semeru Runtime Open Edition OpenJDK with OpenJ9 and Red Hat's UBI 9 minimal as the base OS. For more information on this image please see https://ibm.biz/wl-app-image-template" \ + org.opencontainers.image.title="IBM WebSphere Liberty" \ + liberty.version="$LIBERTY_VERSION" \ + com.ibm.websphere.liberty.version="$LIBERTY_VERSION" \ + vendor="IBM" \ + name="IBM WebSphere Liberty" \ + version="$LIBERTY_VERSION" \ + summary="Image for WebSphere Liberty with IBM Semeru Runtime Open Edition OpenJDK with OpenJ9 and Red Hat's UBI 9 minimal" \ + description="This image contains the WebSphere Liberty runtime with IBM Semeru Runtime Open Edition OpenJDK with OpenJ9 and Red Hat's UBI 9 minimal as the base OS. For more information on this image please see https://ibm.biz/wl-app-image-template" + +ENV PATH=$PATH:/opt/ibm/wlp/bin:/opt/ibm/helpers/build:/opt/ibm/helpers/runtime + +# Add labels for consumption by IBM Product Insights +LABEL "ProductID"="fbf6a96d49214c0abc6a3bc5da6e48cd" \ + "ProductName"="WebSphere Application Server Liberty" \ + "ProductVersion"="$LIBERTY_VERSION" \ + "BuildLabel"="$LIBERTY_BUILD_LABEL" + +# 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; + +# Add default user 1001 and create wlp with right user/permissions before copying +RUN microdnf -y install shadow-utils findutils openssl \ + && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ + && mkdir -p /opt/ibm/wlp \ + && chown -R 1001:0 /opt/ibm/wlp \ + && chmod -R g+rw /opt/ibm/wlp \ + && microdnf remove -y shadow-utils \ + && microdnf clean all + +# Copy the runtime and licenses +COPY --from=getRuntime --chown=1001:0 /opt/ibm/wlp /opt/ibm/wlp +COPY --from=getRuntime /licenses /licenses + +# Set Path Shortcuts +ENV LOG_DIR=/liberty/logs \ + WLP_OUTPUT_DIR=/opt/ibm/wlp/output \ + OPENJ9_SCC=$OPENJ9_SCC + +# Configure WebSphere Liberty +RUN /opt/ibm/wlp/bin/server create \ + && rm -rf $WLP_OUTPUT_DIR/.classCache /output/workarea \ + && rm -rf /opt/ibm/wlp/usr/servers/defaultServer/server.env + +COPY NOTICES /opt/ibm/NOTICES +COPY helpers/ /opt/ibm/helpers/ +COPY fixes/ /opt/ibm/fixes/ + +# Create symlinks && set permissions for non-root user +RUN mkdir /logs \ + && chown -R 1001:0 /logs \ + && chmod -R g+rw /logs \ + && mkdir /etc/wlp \ + && mkdir -p /opt/ibm/wlp/usr/shared/resources/lib.index.cache \ + && mkdir -p /home/default \ + && mkdir /output \ + && chmod -t /output \ + && rm -rf /output \ + && ln -s $WLP_OUTPUT_DIR/defaultServer /output \ + && ln -s /opt/ibm/wlp/usr/servers/defaultServer /config \ + && ln -s /opt/ibm/wlp /liberty \ + && ln -s /opt/ibm/fixes /fixes \ + && ln -s /opt/ibm/wlp/usr/shared/resources/lib.index.cache /lib.index.cache \ + && mkdir -p /config/configDropins/defaults \ + && mkdir -p /config/configDropins/overrides \ + && chown -R 1001:0 /config \ + && chmod -R g+rw /config \ + && chown -R 1001:0 /opt/ibm/helpers \ + && chmod -R ug+rwx /opt/ibm/helpers \ + && chown -R 1001:0 /opt/ibm/fixes \ + && chmod -R g+rwx /opt/ibm/fixes \ + && chown -R 1001:0 /opt/ibm/wlp/usr \ + && chmod -R g+rw /opt/ibm/wlp/usr \ + && chown -R 1001:0 /opt/ibm/wlp/output \ + && chmod -R g+rw /opt/ibm/wlp/output \ + && 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 \ + && chown -R 1001:0 /home/default \ + && chmod -R g+rw /home/default \ + && 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/ibm/wlp/output \ + && chmod -R g+rwx /opt/ibm/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/ibm/helpers/runtime/docker-server.sh"] +CMD ["/opt/ibm/wlp/bin/server", "run", "defaultServer"] diff --git a/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk21 b/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk21 new file mode 100644 index 000000000..383464195 --- /dev/null +++ b/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk21 @@ -0,0 +1,185 @@ +# (C) Copyright IBM Corporation 2023. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +FROM icr.io/appcafe/ibm-semeru-runtimes:open-21-jre-ubi10-minimal AS getRuntime + +USER root + +ARG VERBOSE=false + +# Install WebSphere Liberty +ARG LIBERTY_VERSION=26.0.0.6 +ARG LIBERTY_URL +ARG DOWNLOAD_OPTIONS="" +ARG LIBERTY_SHA=7a614ebeb2fc9c6c542cc973b0575c0a8515173d + +# If there is a local copy of the image use that instead +COPY resources/ /tmp/ + +RUN microdnf -y install shadow-utils unzip wget findutils openssl \ + && mkdir -p /licenses \ + && useradd -u 1001 -r -g 0 -s /usr/sbin/nologin default \ + && LIBERTY_URL=${LIBERTY_URL:-$(wget -q -O - https://public.dhe.ibm.com/ibmdl/export/pub/software/websphere/wasdev/downloads/wlp/index.yml | grep -E "^\s*kernel:.*${LIBERTY_VERSION}\.zip" | sed -n 's/\s*kernel:\s//p' | tr -d '\r' )} \ + && if [ ! -f /tmp/wlp.zip ]; then wget $DOWNLOAD_OPTIONS $LIBERTY_URL -U UA-IBM-WebSphere-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 g+x /usr/bin \ + && unzip -q /tmp/wlp.zip -d /opt/ibm \ + && chown -R 1001:0 /opt/ibm/wlp \ + && chmod -R g+rw /opt/ibm/wlp \ + && cp -a /opt/ibm/wlp/lafiles/. /licenses/ + +FROM icr.io/appcafe/ibm-semeru-runtimes:open-21-jre-ubi10-minimal + +USER root + +ARG VERBOSE=false +ARG OPENJ9_SCC=true + +ARG LIBERTY_VERSION=26.0.0.6 +ARG LIBERTY_BUILD_LABEL=cl260620260531-0302 + +LABEL org.opencontainers.image.authors="Leo Christy Jesuraj, Thomas Watson, Wendy Raschke, Michal Broz" \ + org.opencontainers.image.vendor="IBM" \ + org.opencontainers.image.url="https://github.com/WASdev/ci.docker" \ + org.opencontainers.image.documentation="https://www.ibm.com/support/knowledgecenter/SSAW57_liberty/com.ibm.websphere.wlp.nd.multiplatform.doc/ae/cwlp_about.html" \ + org.opencontainers.image.version="$LIBERTY_VERSION" \ + org.opencontainers.image.revision="$LIBERTY_BUILD_LABEL" \ + org.opencontainers.image.description="This image contains the WebSphere Liberty runtime with IBM Semeru Runtime Open Edition OpenJDK with OpenJ9 and Red Hat's UBI 9 minimal as the base OS. For more information on this image please see https://ibm.biz/wl-app-image-template" \ + org.opencontainers.image.title="IBM WebSphere Liberty" \ + liberty.version="$LIBERTY_VERSION" \ + com.ibm.websphere.liberty.version="$LIBERTY_VERSION" \ + vendor="IBM" \ + name="IBM WebSphere Liberty" \ + version="$LIBERTY_VERSION" \ + summary="Image for WebSphere Liberty with IBM Semeru Runtime Open Edition OpenJDK with OpenJ9 and Red Hat's UBI 9 minimal" \ + description="This image contains the WebSphere Liberty runtime with IBM Semeru Runtime Open Edition OpenJDK with OpenJ9 and Red Hat's UBI 9 minimal as the base OS. For more information on this image please see https://ibm.biz/wl-app-image-template" + +ENV PATH=$PATH:/opt/ibm/wlp/bin:/opt/ibm/helpers/build:/opt/ibm/helpers/runtime + +# Add labels for consumption by IBM Product Insights +LABEL "ProductID"="fbf6a96d49214c0abc6a3bc5da6e48cd" \ + "ProductName"="WebSphere Application Server Liberty" \ + "ProductVersion"="$LIBERTY_VERSION" \ + "BuildLabel"="$LIBERTY_BUILD_LABEL" + +# 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; + +# Add default user 1001 and create wlp with right user/permissions before copying +RUN microdnf -y install shadow-utils findutils openssl \ + && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ + && mkdir -p /opt/ibm/wlp \ + && chown -R 1001:0 /opt/ibm/wlp \ + && chmod -R g+rw /opt/ibm/wlp \ + && microdnf remove -y shadow-utils \ + && microdnf clean all + +# Copy the runtime and licenses +COPY --from=getRuntime --chown=1001:0 /opt/ibm/wlp /opt/ibm/wlp +COPY --from=getRuntime /licenses /licenses + +# Set Path Shortcuts +ENV LOG_DIR=/liberty/logs \ + WLP_OUTPUT_DIR=/opt/ibm/wlp/output \ + OPENJ9_SCC=$OPENJ9_SCC + +# Configure WebSphere Liberty +RUN /opt/ibm/wlp/bin/server create \ + && rm -rf $WLP_OUTPUT_DIR/.classCache /output/workarea \ + && rm -rf /opt/ibm/wlp/usr/servers/defaultServer/server.env + +COPY NOTICES /opt/ibm/NOTICES +COPY helpers/ /opt/ibm/helpers/ +COPY fixes/ /opt/ibm/fixes/ + +# Create symlinks && set permissions for non-root user +RUN mkdir /logs \ + && chown -R 1001:0 /logs \ + && chmod -R g+rw /logs \ + && mkdir /etc/wlp \ + && mkdir -p /opt/ibm/wlp/usr/shared/resources/lib.index.cache \ + && mkdir -p /home/default \ + && mkdir /output \ + && chmod -t /output \ + && rm -rf /output \ + && ln -s $WLP_OUTPUT_DIR/defaultServer /output \ + && ln -s /opt/ibm/wlp/usr/servers/defaultServer /config \ + && ln -s /opt/ibm/wlp /liberty \ + && ln -s /opt/ibm/fixes /fixes \ + && ln -s /opt/ibm/wlp/usr/shared/resources/lib.index.cache /lib.index.cache \ + && mkdir -p /config/configDropins/defaults \ + && mkdir -p /config/configDropins/overrides \ + && chown -R 1001:0 /config \ + && chmod -R g+rw /config \ + && chown -R 1001:0 /opt/ibm/helpers \ + && chmod -R ug+rwx /opt/ibm/helpers \ + && chown -R 1001:0 /opt/ibm/fixes \ + && chmod -R g+rwx /opt/ibm/fixes \ + && chown -R 1001:0 /opt/ibm/wlp/usr \ + && chmod -R g+rw /opt/ibm/wlp/usr \ + && chown -R 1001:0 /opt/ibm/wlp/output \ + && chmod -R g+rw /opt/ibm/wlp/output \ + && 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 \ + && chown -R 1001:0 /home/default \ + && chmod -R g+rw /home/default \ + && 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/ibm/wlp/output \ + && chmod -R g+rwx /opt/ibm/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/ibm/helpers/runtime/docker-server.sh"] +CMD ["/opt/ibm/wlp/bin/server", "run", "defaultServer"] diff --git a/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk25 b/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk25 new file mode 100644 index 000000000..baa4f52e2 --- /dev/null +++ b/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk25 @@ -0,0 +1,185 @@ +# (C) Copyright IBM Corporation 2025. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +FROM icr.io/appcafe/ibm-semeru-runtimes:open-25-jre-ubi10-minimal AS getRuntime + +USER root + +ARG VERBOSE=false + +# Install WebSphere Liberty +ARG LIBERTY_VERSION=26.0.0.6 +ARG LIBERTY_URL +ARG DOWNLOAD_OPTIONS="" +ARG LIBERTY_SHA=7a614ebeb2fc9c6c542cc973b0575c0a8515173d + +# If there is a local copy of the image use that instead +COPY resources/ /tmp/ + +RUN microdnf -y install shadow-utils unzip wget findutils openssl \ + && mkdir -p /licenses \ + && useradd -u 1001 -r -g 0 -s /usr/sbin/nologin default \ + && LIBERTY_URL=${LIBERTY_URL:-$(wget -q -O - https://public.dhe.ibm.com/ibmdl/export/pub/software/websphere/wasdev/downloads/wlp/index.yml | grep -E "^\s*kernel:.*${LIBERTY_VERSION}\.zip" | sed -n 's/\s*kernel:\s//p' | tr -d '\r' )} \ + && if [ ! -f /tmp/wlp.zip ]; then wget $DOWNLOAD_OPTIONS $LIBERTY_URL -U UA-IBM-WebSphere-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 g+x /usr/bin \ + && unzip -q /tmp/wlp.zip -d /opt/ibm \ + && chown -R 1001:0 /opt/ibm/wlp \ + && chmod -R g+rw /opt/ibm/wlp \ + && cp -a /opt/ibm/wlp/lafiles/. /licenses/ + +FROM icr.io/appcafe/ibm-semeru-runtimes:open-25-jre-ubi10-minimal + +USER root + +ARG VERBOSE=false +ARG OPENJ9_SCC=true + +ARG LIBERTY_VERSION=26.0.0.6 +ARG LIBERTY_BUILD_LABEL=cl260620260531-0302 + +LABEL org.opencontainers.image.authors="Leo Christy Jesuraj, Iain Lewis, Melissa Lee, Kirby Chin" \ + org.opencontainers.image.vendor="IBM" \ + org.opencontainers.image.url="https://github.com/WASdev/ci.docker" \ + org.opencontainers.image.documentation="https://www.ibm.com/support/knowledgecenter/SSAW57_liberty/com.ibm.websphere.wlp.nd.multiplatform.doc/ae/cwlp_about.html" \ + org.opencontainers.image.version="$LIBERTY_VERSION" \ + org.opencontainers.image.revision="$LIBERTY_BUILD_LABEL" \ + org.opencontainers.image.description="This image contains the WebSphere Liberty runtime with IBM Semeru Runtime Open Edition OpenJDK with OpenJ9 and Red Hat's UBI 9 minimal as the base OS. For more information on this image please see https://ibm.biz/wl-app-image-template" \ + org.opencontainers.image.title="IBM WebSphere Liberty" \ + liberty.version="$LIBERTY_VERSION" \ + com.ibm.websphere.liberty.version="$LIBERTY_VERSION" \ + vendor="IBM" \ + name="IBM WebSphere Liberty" \ + version="$LIBERTY_VERSION" \ + summary="Image for WebSphere Liberty with IBM Semeru Runtime Open Edition OpenJDK with OpenJ9 and Red Hat's UBI 9 minimal" \ + description="This image contains the WebSphere Liberty runtime with IBM Semeru Runtime Open Edition OpenJDK with OpenJ9 and Red Hat's UBI 9 minimal as the base OS. For more information on this image please see https://ibm.biz/wl-app-image-template" + +ENV PATH=$PATH:/opt/ibm/wlp/bin:/opt/ibm/helpers/build:/opt/ibm/helpers/runtime + +# Add labels for consumption by IBM Product Insights +LABEL "ProductID"="fbf6a96d49214c0abc6a3bc5da6e48cd" \ + "ProductName"="WebSphere Application Server Liberty" \ + "ProductVersion"="$LIBERTY_VERSION" \ + "BuildLabel"="$LIBERTY_BUILD_LABEL" + +# 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; + +# Add default user 1001 and create wlp with right user/permissions before copying +RUN microdnf -y install shadow-utils findutils openssl \ + && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ + && mkdir -p /opt/ibm/wlp \ + && chown -R 1001:0 /opt/ibm/wlp \ + && chmod -R g+rw /opt/ibm/wlp \ + && microdnf remove -y shadow-utils \ + && microdnf clean all + +# Copy the runtime and licenses +COPY --from=getRuntime --chown=1001:0 /opt/ibm/wlp /opt/ibm/wlp +COPY --from=getRuntime /licenses /licenses + +# Set Path Shortcuts +ENV LOG_DIR=/liberty/logs \ + WLP_OUTPUT_DIR=/opt/ibm/wlp/output \ + OPENJ9_SCC=$OPENJ9_SCC + +# Configure WebSphere Liberty +RUN /opt/ibm/wlp/bin/server create \ + && rm -rf $WLP_OUTPUT_DIR/.classCache /output/workarea \ + && rm -rf /opt/ibm/wlp/usr/servers/defaultServer/server.env + +COPY NOTICES /opt/ibm/NOTICES +COPY helpers/ /opt/ibm/helpers/ +COPY fixes/ /opt/ibm/fixes/ + +# Create symlinks && set permissions for non-root user +RUN mkdir /logs \ + && chown -R 1001:0 /logs \ + && chmod -R g+rw /logs \ + && mkdir /etc/wlp \ + && mkdir -p /opt/ibm/wlp/usr/shared/resources/lib.index.cache \ + && mkdir -p /home/default \ + && mkdir /output \ + && chmod -t /output \ + && rm -rf /output \ + && ln -s $WLP_OUTPUT_DIR/defaultServer /output \ + && ln -s /opt/ibm/wlp/usr/servers/defaultServer /config \ + && ln -s /opt/ibm/wlp /liberty \ + && ln -s /opt/ibm/fixes /fixes \ + && ln -s /opt/ibm/wlp/usr/shared/resources/lib.index.cache /lib.index.cache \ + && mkdir -p /config/configDropins/defaults \ + && mkdir -p /config/configDropins/overrides \ + && chown -R 1001:0 /config \ + && chmod -R g+rw /config \ + && chown -R 1001:0 /opt/ibm/helpers \ + && chmod -R ug+rwx /opt/ibm/helpers \ + && chown -R 1001:0 /opt/ibm/fixes \ + && chmod -R g+rwx /opt/ibm/fixes \ + && chown -R 1001:0 /opt/ibm/wlp/usr \ + && chmod -R g+rw /opt/ibm/wlp/usr \ + && chown -R 1001:0 /opt/ibm/wlp/output \ + && chmod -R g+rw /opt/ibm/wlp/output \ + && 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 \ + && chown -R 1001:0 /home/default \ + && chmod -R g+rw /home/default \ + && 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/ibm/wlp/output \ + && chmod -R g+rwx /opt/ibm/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/ibm/helpers/runtime/docker-server.sh"] +CMD ["/opt/ibm/wlp/bin/server", "run", "defaultServer"] diff --git a/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk8 b/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk8 new file mode 100644 index 000000000..e236b410c --- /dev/null +++ b/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk8 @@ -0,0 +1,185 @@ +# (C) Copyright IBM Corporation 2023. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +FROM icr.io/appcafe/ibm-semeru-runtimes:open-8-jre-ubi10-minimal AS getRuntime + +USER root + +ARG VERBOSE=false + +# Install WebSphere Liberty +ARG LIBERTY_VERSION=26.0.0.6 +ARG LIBERTY_URL +ARG DOWNLOAD_OPTIONS="" +ARG LIBERTY_SHA=7a614ebeb2fc9c6c542cc973b0575c0a8515173d + +# If there is a local copy of the image use that instead +COPY resources/ /tmp/ + +RUN microdnf -y install shadow-utils unzip wget findutils openssl \ + && mkdir -p /licenses \ + && useradd -u 1001 -r -g 0 -s /usr/sbin/nologin default \ + && LIBERTY_URL=${LIBERTY_URL:-$(wget -q -O - https://public.dhe.ibm.com/ibmdl/export/pub/software/websphere/wasdev/downloads/wlp/index.yml | grep -E "^\s*kernel:.*${LIBERTY_VERSION}\.zip" | sed -n 's/\s*kernel:\s//p' | tr -d '\r' )} \ + && if [ ! -f /tmp/wlp.zip ]; then wget $DOWNLOAD_OPTIONS $LIBERTY_URL -U UA-IBM-WebSphere-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 g+x /usr/bin \ + && unzip -q /tmp/wlp.zip -d /opt/ibm \ + && chown -R 1001:0 /opt/ibm/wlp \ + && chmod -R g+rw /opt/ibm/wlp \ + && cp -a /opt/ibm/wlp/lafiles/. /licenses/ + +FROM icr.io/appcafe/ibm-semeru-runtimes:open-8-jre-ubi10-minimal + +USER root + +ARG VERBOSE=false +ARG OPENJ9_SCC=true + +ARG LIBERTY_VERSION=26.0.0.6 +ARG LIBERTY_BUILD_LABEL=cl260620260531-0302 + +LABEL org.opencontainers.image.authors="Leo Christy Jesuraj, Iain Lewis, Melissa Lee, Kirby Chin" \ + org.opencontainers.image.vendor="IBM" \ + org.opencontainers.image.url="https://github.com/WASdev/ci.docker" \ + org.opencontainers.image.documentation="https://www.ibm.com/support/knowledgecenter/SSAW57_liberty/com.ibm.websphere.wlp.nd.multiplatform.doc/ae/cwlp_about.html" \ + org.opencontainers.image.version="$LIBERTY_VERSION" \ + org.opencontainers.image.revision="$LIBERTY_BUILD_LABEL" \ + org.opencontainers.image.description="This image contains the WebSphere Liberty runtime with IBM Semeru Runtime Open Edition OpenJDK with OpenJ9 and Red Hat's UBI 9 minimal as the base OS. For more information on this image please see https://ibm.biz/wl-app-image-template" \ + org.opencontainers.image.title="IBM WebSphere Liberty" \ + liberty.version="$LIBERTY_VERSION" \ + com.ibm.websphere.liberty.version="$LIBERTY_VERSION" \ + vendor="IBM" \ + name="IBM WebSphere Liberty" \ + version="$LIBERTY_VERSION" \ + summary="Image for WebSphere Liberty with IBM Semeru Runtime Open Edition OpenJDK with OpenJ9 and Red Hat's UBI 9 minimal" \ + description="This image contains the WebSphere Liberty runtime with IBM Semeru Runtime Open Edition OpenJDK with OpenJ9 and Red Hat's UBI 9 minimal as the base OS. For more information on this image please see https://ibm.biz/wl-app-image-template" + +ENV PATH=$PATH:/opt/ibm/wlp/bin:/opt/ibm/helpers/build:/opt/ibm/helpers/runtime + +# Add labels for consumption by IBM Product Insights +LABEL "ProductID"="fbf6a96d49214c0abc6a3bc5da6e48cd" \ + "ProductName"="WebSphere Application Server Liberty" \ + "ProductVersion"="$LIBERTY_VERSION" \ + "BuildLabel"="$LIBERTY_BUILD_LABEL" + +# 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; + +# Add default user 1001 and create wlp with right user/permissions before copying +RUN microdnf -y install shadow-utils findutils openssl \ + && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ + && mkdir -p /opt/ibm/wlp \ + && chown -R 1001:0 /opt/ibm/wlp \ + && chmod -R g+rw /opt/ibm/wlp \ + && microdnf remove -y shadow-utils \ + && microdnf clean all + +# Copy the runtime and licenses +COPY --from=getRuntime --chown=1001:0 /opt/ibm/wlp /opt/ibm/wlp +COPY --from=getRuntime /licenses /licenses + +# Set Path Shortcuts +ENV LOG_DIR=/liberty/logs \ + WLP_OUTPUT_DIR=/opt/ibm/wlp/output \ + OPENJ9_SCC=$OPENJ9_SCC + +# Configure WebSphere Liberty +RUN /opt/ibm/wlp/bin/server create \ + && rm -rf $WLP_OUTPUT_DIR/.classCache /output/workarea \ + && rm -rf /opt/ibm/wlp/usr/servers/defaultServer/server.env + +COPY NOTICES /opt/ibm/NOTICES +COPY helpers/ /opt/ibm/helpers/ +COPY fixes/ /opt/ibm/fixes/ + +# Create symlinks && set permissions for non-root user +RUN mkdir /logs \ + && chown -R 1001:0 /logs \ + && chmod -R g+rw /logs \ + && mkdir /etc/wlp \ + && mkdir -p /opt/ibm/wlp/usr/shared/resources/lib.index.cache \ + && mkdir -p /home/default \ + && mkdir /output \ + && chmod -t /output \ + && rm -rf /output \ + && ln -s $WLP_OUTPUT_DIR/defaultServer /output \ + && ln -s /opt/ibm/wlp/usr/servers/defaultServer /config \ + && ln -s /opt/ibm/wlp /liberty \ + && ln -s /opt/ibm/fixes /fixes \ + && ln -s /opt/ibm/wlp/usr/shared/resources/lib.index.cache /lib.index.cache \ + && mkdir -p /config/configDropins/defaults \ + && mkdir -p /config/configDropins/overrides \ + && chown -R 1001:0 /config \ + && chmod -R g+rw /config \ + && chown -R 1001:0 /opt/ibm/helpers \ + && chmod -R ug+rwx /opt/ibm/helpers \ + && chown -R 1001:0 /opt/ibm/fixes \ + && chmod -R g+rwx /opt/ibm/fixes \ + && chown -R 1001:0 /opt/ibm/wlp/usr \ + && chmod -R g+rw /opt/ibm/wlp/usr \ + && chown -R 1001:0 /opt/ibm/wlp/output \ + && chmod -R g+rw /opt/ibm/wlp/output \ + && 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 \ + && chown -R 1001:0 /home/default \ + && chmod -R g+rw /home/default \ + && 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/ibm/wlp/output \ + && chmod -R g+rwx /opt/ibm/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/ibm/helpers/runtime/docker-server.sh"] +CMD ["/opt/ibm/wlp/bin/server", "run", "defaultServer"] From 41be11fb146b3c8daddaa303f681a4250390c0cc Mon Sep 17 00:00:00 2001 From: Kirby Chin <37311900+kabicin@users.noreply.github.com> Date: Fri, 12 Jun 2026 16:18:58 -0400 Subject: [PATCH 2/6] Update ubi9 to ubi10 --- ...ava8 => Dockerfile.ubi10-minimal.ibmjava8} | 16 +- .../kernel/Dockerfile.ubi10-minimal.openjdk11 | 4 +- .../kernel/Dockerfile.ubi10-minimal.openjdk17 | 4 +- .../kernel/Dockerfile.ubi10-minimal.openjdk21 | 4 +- .../kernel/Dockerfile.ubi9-minimal.openjdk11 | 185 ------------------ .../kernel/Dockerfile.ubi9-minimal.openjdk17 | 185 ------------------ .../kernel/Dockerfile.ubi9-minimal.openjdk21 | 185 ------------------ .../kernel/Dockerfile.ubi9-minimal.openjdk25 | 185 ------------------ .../kernel/Dockerfile.ubi9-minimal.openjdk8 | 185 ------------------ 9 files changed, 14 insertions(+), 939 deletions(-) rename ga/latest/kernel/{Dockerfile.ubi9-minimal.ibmjava8 => Dockerfile.ubi10-minimal.ibmjava8} (93%) delete mode 100644 ga/latest/kernel/Dockerfile.ubi9-minimal.openjdk11 delete mode 100644 ga/latest/kernel/Dockerfile.ubi9-minimal.openjdk17 delete mode 100644 ga/latest/kernel/Dockerfile.ubi9-minimal.openjdk21 delete mode 100644 ga/latest/kernel/Dockerfile.ubi9-minimal.openjdk25 delete mode 100644 ga/latest/kernel/Dockerfile.ubi9-minimal.openjdk8 diff --git a/ga/latest/kernel/Dockerfile.ubi9-minimal.ibmjava8 b/ga/latest/kernel/Dockerfile.ubi10-minimal.ibmjava8 similarity index 93% rename from ga/latest/kernel/Dockerfile.ubi9-minimal.ibmjava8 rename to ga/latest/kernel/Dockerfile.ubi10-minimal.ibmjava8 index f90238289..e01b1db93 100644 --- a/ga/latest/kernel/Dockerfile.ubi9-minimal.ibmjava8 +++ b/ga/latest/kernel/Dockerfile.ubi10-minimal.ibmjava8 @@ -14,15 +14,15 @@ # 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.ubi9.minimal +# 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 UBI9 base, and corrects the microdnf command to work on UBI9. -# $> sed -i -e 's/ubi8/ubi9/' -e 's/microdnf install/microdnf -y install/' -e 's/microdnf update/microdnf update -y/' Dockerfile.ubi9-minimal.ibmjava8 -# $> rm ./java/Dockerfile.ubi9.minimal.bak -# Then build and tag as 'ibmjava:9-ubi' -# $> docker build -t ibmjava:9-ubi -f ./java/Dockerfile.ubi9.minimal java +# 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:9-ubi -f ./java/Dockerfile.ubi10.minimal java -FROM ibmjava:9-ubi AS getRuntime +FROM ibmjava:10-ubi AS getRuntime USER root @@ -52,7 +52,7 @@ RUN microdnf -y install shadow-utils unzip wget findutils openssl \ && chmod -R g+rw /opt/ibm/wlp \ && cp -a /opt/ibm/wlp/lafiles/. /licenses/ -FROM ibmjava:9-ubi +FROM ibmjava:10-ubi USER root diff --git a/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk11 b/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk11 index f3090734f..07dcaaa4f 100644 --- a/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk11 +++ b/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk11 @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -FROM icr.io/appcafe/ibm-semeru-runtimes:open-11-jre-ubi10-minimal AS getRuntime +FROM icr.io/appcafe/ibm-semeru-runtimes:open-11-jre-ubi9-minimal AS getRuntime USER root @@ -40,7 +40,7 @@ RUN microdnf -y install shadow-utils unzip wget findutils openssl \ && chmod -R g+rw /opt/ibm/wlp \ && cp -a /opt/ibm/wlp/lafiles/. /licenses/ -FROM icr.io/appcafe/ibm-semeru-runtimes:open-11-jre-ubi10-minimal +FROM icr.io/appcafe/ibm-semeru-runtimes:open-11-jre-ubi9-minimal USER root diff --git a/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk17 b/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk17 index b71a02173..6e793aa3e 100644 --- a/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk17 +++ b/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk17 @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -FROM icr.io/appcafe/ibm-semeru-runtimes:open-17-jre-ubi10-minimal AS getRuntime +FROM icr.io/appcafe/ibm-semeru-runtimes:open-17-jre-ubi9-minimal AS getRuntime USER root @@ -40,7 +40,7 @@ RUN microdnf -y install shadow-utils unzip wget findutils openssl \ && chmod -R g+rw /opt/ibm/wlp \ && cp -a /opt/ibm/wlp/lafiles/. /licenses/ -FROM icr.io/appcafe/ibm-semeru-runtimes:open-17-jre-ubi10-minimal +FROM icr.io/appcafe/ibm-semeru-runtimes:open-17-jre-ubi9-minimal USER root diff --git a/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk21 b/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk21 index 383464195..eef1e52a6 100644 --- a/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk21 +++ b/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk21 @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -FROM icr.io/appcafe/ibm-semeru-runtimes:open-21-jre-ubi10-minimal AS getRuntime +FROM icr.io/appcafe/ibm-semeru-runtimes:open-21-jre-ubi9-minimal AS getRuntime USER root @@ -40,7 +40,7 @@ RUN microdnf -y install shadow-utils unzip wget findutils openssl \ && chmod -R g+rw /opt/ibm/wlp \ && cp -a /opt/ibm/wlp/lafiles/. /licenses/ -FROM icr.io/appcafe/ibm-semeru-runtimes:open-21-jre-ubi10-minimal +FROM icr.io/appcafe/ibm-semeru-runtimes:open-21-jre-ubi9-minimal USER root diff --git a/ga/latest/kernel/Dockerfile.ubi9-minimal.openjdk11 b/ga/latest/kernel/Dockerfile.ubi9-minimal.openjdk11 deleted file mode 100644 index 07dcaaa4f..000000000 --- a/ga/latest/kernel/Dockerfile.ubi9-minimal.openjdk11 +++ /dev/null @@ -1,185 +0,0 @@ -# (C) Copyright IBM Corporation 2023. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -FROM icr.io/appcafe/ibm-semeru-runtimes:open-11-jre-ubi9-minimal AS getRuntime - -USER root - -ARG VERBOSE=false - -# Install WebSphere Liberty -ARG LIBERTY_VERSION=26.0.0.6 -ARG LIBERTY_URL -ARG DOWNLOAD_OPTIONS="" -ARG LIBERTY_SHA=7a614ebeb2fc9c6c542cc973b0575c0a8515173d - -# If there is a local copy of the image use that instead -COPY resources/ /tmp/ - -RUN microdnf -y install shadow-utils unzip wget findutils openssl \ - && mkdir -p /licenses \ - && useradd -u 1001 -r -g 0 -s /usr/sbin/nologin default \ - && LIBERTY_URL=${LIBERTY_URL:-$(wget -q -O - https://public.dhe.ibm.com/ibmdl/export/pub/software/websphere/wasdev/downloads/wlp/index.yml | grep -E "^\s*kernel:.*${LIBERTY_VERSION}\.zip" | sed -n 's/\s*kernel:\s//p' | tr -d '\r' )} \ - && if [ ! -f /tmp/wlp.zip ]; then wget $DOWNLOAD_OPTIONS $LIBERTY_URL -U UA-IBM-WebSphere-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 g+x /usr/bin \ - && unzip -q /tmp/wlp.zip -d /opt/ibm \ - && chown -R 1001:0 /opt/ibm/wlp \ - && chmod -R g+rw /opt/ibm/wlp \ - && cp -a /opt/ibm/wlp/lafiles/. /licenses/ - -FROM icr.io/appcafe/ibm-semeru-runtimes:open-11-jre-ubi9-minimal - -USER root - -ARG VERBOSE=false -ARG OPENJ9_SCC=true - -ARG LIBERTY_VERSION=26.0.0.6 -ARG LIBERTY_BUILD_LABEL=cl260620260531-0302 - -LABEL org.opencontainers.image.authors="Leo Christy Jesuraj, Iain Lewis, Melissa Lee, Kirby Chin" \ - org.opencontainers.image.vendor="IBM" \ - org.opencontainers.image.url="https://github.com/WASdev/ci.docker" \ - org.opencontainers.image.documentation="https://www.ibm.com/support/knowledgecenter/SSAW57_liberty/com.ibm.websphere.wlp.nd.multiplatform.doc/ae/cwlp_about.html" \ - org.opencontainers.image.version="$LIBERTY_VERSION" \ - org.opencontainers.image.revision="$LIBERTY_BUILD_LABEL" \ - org.opencontainers.image.description="This image contains the WebSphere Liberty runtime with IBM Semeru Runtime Open Edition OpenJDK with OpenJ9 and Red Hat's UBI 9 minimal as the base OS. For more information on this image please see https://ibm.biz/wl-app-image-template" \ - org.opencontainers.image.title="IBM WebSphere Liberty" \ - liberty.version="$LIBERTY_VERSION" \ - com.ibm.websphere.liberty.version="$LIBERTY_VERSION" \ - vendor="IBM" \ - name="IBM WebSphere Liberty" \ - version="$LIBERTY_VERSION" \ - summary="Image for WebSphere Liberty with IBM Semeru Runtime Open Edition OpenJDK with OpenJ9 and Red Hat's UBI 9 minimal" \ - description="This image contains the WebSphere Liberty runtime with IBM Semeru Runtime Open Edition OpenJDK with OpenJ9 and Red Hat's UBI 9 minimal as the base OS. For more information on this image please see https://ibm.biz/wl-app-image-template" - -ENV PATH=$PATH:/opt/ibm/wlp/bin:/opt/ibm/helpers/build:/opt/ibm/helpers/runtime - -# Add labels for consumption by IBM Product Insights -LABEL "ProductID"="fbf6a96d49214c0abc6a3bc5da6e48cd" \ - "ProductName"="WebSphere Application Server Liberty" \ - "ProductVersion"="$LIBERTY_VERSION" \ - "BuildLabel"="$LIBERTY_BUILD_LABEL" - -# 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; - -# Add default user 1001 and create wlp with right user/permissions before copying -RUN microdnf -y install shadow-utils findutils openssl \ - && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ - && mkdir -p /opt/ibm/wlp \ - && chown -R 1001:0 /opt/ibm/wlp \ - && chmod -R g+rw /opt/ibm/wlp \ - && microdnf remove -y shadow-utils \ - && microdnf clean all - -# Copy the runtime and licenses -COPY --from=getRuntime --chown=1001:0 /opt/ibm/wlp /opt/ibm/wlp -COPY --from=getRuntime /licenses /licenses - -# Set Path Shortcuts -ENV LOG_DIR=/liberty/logs \ - WLP_OUTPUT_DIR=/opt/ibm/wlp/output \ - OPENJ9_SCC=$OPENJ9_SCC - -# Configure WebSphere Liberty -RUN /opt/ibm/wlp/bin/server create \ - && rm -rf $WLP_OUTPUT_DIR/.classCache /output/workarea \ - && rm -rf /opt/ibm/wlp/usr/servers/defaultServer/server.env - -COPY NOTICES /opt/ibm/NOTICES -COPY helpers/ /opt/ibm/helpers/ -COPY fixes/ /opt/ibm/fixes/ - -# Create symlinks && set permissions for non-root user -RUN mkdir /logs \ - && chown -R 1001:0 /logs \ - && chmod -R g+rw /logs \ - && mkdir /etc/wlp \ - && mkdir -p /opt/ibm/wlp/usr/shared/resources/lib.index.cache \ - && mkdir -p /home/default \ - && mkdir /output \ - && chmod -t /output \ - && rm -rf /output \ - && ln -s $WLP_OUTPUT_DIR/defaultServer /output \ - && ln -s /opt/ibm/wlp/usr/servers/defaultServer /config \ - && ln -s /opt/ibm/wlp /liberty \ - && ln -s /opt/ibm/fixes /fixes \ - && ln -s /opt/ibm/wlp/usr/shared/resources/lib.index.cache /lib.index.cache \ - && mkdir -p /config/configDropins/defaults \ - && mkdir -p /config/configDropins/overrides \ - && chown -R 1001:0 /config \ - && chmod -R g+rw /config \ - && chown -R 1001:0 /opt/ibm/helpers \ - && chmod -R ug+rwx /opt/ibm/helpers \ - && chown -R 1001:0 /opt/ibm/fixes \ - && chmod -R g+rwx /opt/ibm/fixes \ - && chown -R 1001:0 /opt/ibm/wlp/usr \ - && chmod -R g+rw /opt/ibm/wlp/usr \ - && chown -R 1001:0 /opt/ibm/wlp/output \ - && chmod -R g+rw /opt/ibm/wlp/output \ - && 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 \ - && chown -R 1001:0 /home/default \ - && chmod -R g+rw /home/default \ - && 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/ibm/wlp/output \ - && chmod -R g+rwx /opt/ibm/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/ibm/helpers/runtime/docker-server.sh"] -CMD ["/opt/ibm/wlp/bin/server", "run", "defaultServer"] diff --git a/ga/latest/kernel/Dockerfile.ubi9-minimal.openjdk17 b/ga/latest/kernel/Dockerfile.ubi9-minimal.openjdk17 deleted file mode 100644 index 6e793aa3e..000000000 --- a/ga/latest/kernel/Dockerfile.ubi9-minimal.openjdk17 +++ /dev/null @@ -1,185 +0,0 @@ -# (C) Copyright IBM Corporation 2025. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -FROM icr.io/appcafe/ibm-semeru-runtimes:open-17-jre-ubi9-minimal AS getRuntime - -USER root - -ARG VERBOSE=false - -# Install WebSphere Liberty -ARG LIBERTY_VERSION=26.0.0.6 -ARG LIBERTY_URL -ARG DOWNLOAD_OPTIONS="" -ARG LIBERTY_SHA=7a614ebeb2fc9c6c542cc973b0575c0a8515173d - -# If there is a local copy of the image use that instead -COPY resources/ /tmp/ - -RUN microdnf -y install shadow-utils unzip wget findutils openssl \ - && mkdir -p /licenses \ - && useradd -u 1001 -r -g 0 -s /usr/sbin/nologin default \ - && LIBERTY_URL=${LIBERTY_URL:-$(wget -q -O - https://public.dhe.ibm.com/ibmdl/export/pub/software/websphere/wasdev/downloads/wlp/index.yml | grep -E "^\s*kernel:.*${LIBERTY_VERSION}\.zip" | sed -n 's/\s*kernel:\s//p' | tr -d '\r' )} \ - && if [ ! -f /tmp/wlp.zip ]; then wget $DOWNLOAD_OPTIONS $LIBERTY_URL -U UA-IBM-WebSphere-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 g+x /usr/bin \ - && unzip -q /tmp/wlp.zip -d /opt/ibm \ - && chown -R 1001:0 /opt/ibm/wlp \ - && chmod -R g+rw /opt/ibm/wlp \ - && cp -a /opt/ibm/wlp/lafiles/. /licenses/ - -FROM icr.io/appcafe/ibm-semeru-runtimes:open-17-jre-ubi9-minimal - -USER root - -ARG VERBOSE=false -ARG OPENJ9_SCC=true - -ARG LIBERTY_VERSION=26.0.0.6 -ARG LIBERTY_BUILD_LABEL=cl260620260531-0302 - -LABEL org.opencontainers.image.authors="Leo Christy Jesuraj, Iain Lewis, Melissa Lee, Kirby Chin" \ - org.opencontainers.image.vendor="IBM" \ - org.opencontainers.image.url="https://github.com/WASdev/ci.docker" \ - org.opencontainers.image.documentation="https://www.ibm.com/support/knowledgecenter/SSAW57_liberty/com.ibm.websphere.wlp.nd.multiplatform.doc/ae/cwlp_about.html" \ - org.opencontainers.image.version="$LIBERTY_VERSION" \ - org.opencontainers.image.revision="$LIBERTY_BUILD_LABEL" \ - org.opencontainers.image.description="This image contains the WebSphere Liberty runtime with IBM Semeru Runtime Open Edition OpenJDK with OpenJ9 and Red Hat's UBI 9 minimal as the base OS. For more information on this image please see https://ibm.biz/wl-app-image-template" \ - org.opencontainers.image.title="IBM WebSphere Liberty" \ - liberty.version="$LIBERTY_VERSION" \ - com.ibm.websphere.liberty.version="$LIBERTY_VERSION" \ - vendor="IBM" \ - name="IBM WebSphere Liberty" \ - version="$LIBERTY_VERSION" \ - summary="Image for WebSphere Liberty with IBM Semeru Runtime Open Edition OpenJDK with OpenJ9 and Red Hat's UBI 9 minimal" \ - description="This image contains the WebSphere Liberty runtime with IBM Semeru Runtime Open Edition OpenJDK with OpenJ9 and Red Hat's UBI 9 minimal as the base OS. For more information on this image please see https://ibm.biz/wl-app-image-template" - -ENV PATH=$PATH:/opt/ibm/wlp/bin:/opt/ibm/helpers/build:/opt/ibm/helpers/runtime - -# Add labels for consumption by IBM Product Insights -LABEL "ProductID"="fbf6a96d49214c0abc6a3bc5da6e48cd" \ - "ProductName"="WebSphere Application Server Liberty" \ - "ProductVersion"="$LIBERTY_VERSION" \ - "BuildLabel"="$LIBERTY_BUILD_LABEL" - -# 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; - -# Add default user 1001 and create wlp with right user/permissions before copying -RUN microdnf -y install shadow-utils findutils openssl \ - && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ - && mkdir -p /opt/ibm/wlp \ - && chown -R 1001:0 /opt/ibm/wlp \ - && chmod -R g+rw /opt/ibm/wlp \ - && microdnf remove -y shadow-utils \ - && microdnf clean all - -# Copy the runtime and licenses -COPY --from=getRuntime --chown=1001:0 /opt/ibm/wlp /opt/ibm/wlp -COPY --from=getRuntime /licenses /licenses - -# Set Path Shortcuts -ENV LOG_DIR=/liberty/logs \ - WLP_OUTPUT_DIR=/opt/ibm/wlp/output \ - OPENJ9_SCC=$OPENJ9_SCC - -# Configure WebSphere Liberty -RUN /opt/ibm/wlp/bin/server create \ - && rm -rf $WLP_OUTPUT_DIR/.classCache /output/workarea \ - && rm -rf /opt/ibm/wlp/usr/servers/defaultServer/server.env - -COPY NOTICES /opt/ibm/NOTICES -COPY helpers/ /opt/ibm/helpers/ -COPY fixes/ /opt/ibm/fixes/ - -# Create symlinks && set permissions for non-root user -RUN mkdir /logs \ - && chown -R 1001:0 /logs \ - && chmod -R g+rw /logs \ - && mkdir /etc/wlp \ - && mkdir -p /opt/ibm/wlp/usr/shared/resources/lib.index.cache \ - && mkdir -p /home/default \ - && mkdir /output \ - && chmod -t /output \ - && rm -rf /output \ - && ln -s $WLP_OUTPUT_DIR/defaultServer /output \ - && ln -s /opt/ibm/wlp/usr/servers/defaultServer /config \ - && ln -s /opt/ibm/wlp /liberty \ - && ln -s /opt/ibm/fixes /fixes \ - && ln -s /opt/ibm/wlp/usr/shared/resources/lib.index.cache /lib.index.cache \ - && mkdir -p /config/configDropins/defaults \ - && mkdir -p /config/configDropins/overrides \ - && chown -R 1001:0 /config \ - && chmod -R g+rw /config \ - && chown -R 1001:0 /opt/ibm/helpers \ - && chmod -R ug+rwx /opt/ibm/helpers \ - && chown -R 1001:0 /opt/ibm/fixes \ - && chmod -R g+rwx /opt/ibm/fixes \ - && chown -R 1001:0 /opt/ibm/wlp/usr \ - && chmod -R g+rw /opt/ibm/wlp/usr \ - && chown -R 1001:0 /opt/ibm/wlp/output \ - && chmod -R g+rw /opt/ibm/wlp/output \ - && 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 \ - && chown -R 1001:0 /home/default \ - && chmod -R g+rw /home/default \ - && 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/ibm/wlp/output \ - && chmod -R g+rwx /opt/ibm/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/ibm/helpers/runtime/docker-server.sh"] -CMD ["/opt/ibm/wlp/bin/server", "run", "defaultServer"] diff --git a/ga/latest/kernel/Dockerfile.ubi9-minimal.openjdk21 b/ga/latest/kernel/Dockerfile.ubi9-minimal.openjdk21 deleted file mode 100644 index eef1e52a6..000000000 --- a/ga/latest/kernel/Dockerfile.ubi9-minimal.openjdk21 +++ /dev/null @@ -1,185 +0,0 @@ -# (C) Copyright IBM Corporation 2023. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -FROM icr.io/appcafe/ibm-semeru-runtimes:open-21-jre-ubi9-minimal AS getRuntime - -USER root - -ARG VERBOSE=false - -# Install WebSphere Liberty -ARG LIBERTY_VERSION=26.0.0.6 -ARG LIBERTY_URL -ARG DOWNLOAD_OPTIONS="" -ARG LIBERTY_SHA=7a614ebeb2fc9c6c542cc973b0575c0a8515173d - -# If there is a local copy of the image use that instead -COPY resources/ /tmp/ - -RUN microdnf -y install shadow-utils unzip wget findutils openssl \ - && mkdir -p /licenses \ - && useradd -u 1001 -r -g 0 -s /usr/sbin/nologin default \ - && LIBERTY_URL=${LIBERTY_URL:-$(wget -q -O - https://public.dhe.ibm.com/ibmdl/export/pub/software/websphere/wasdev/downloads/wlp/index.yml | grep -E "^\s*kernel:.*${LIBERTY_VERSION}\.zip" | sed -n 's/\s*kernel:\s//p' | tr -d '\r' )} \ - && if [ ! -f /tmp/wlp.zip ]; then wget $DOWNLOAD_OPTIONS $LIBERTY_URL -U UA-IBM-WebSphere-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 g+x /usr/bin \ - && unzip -q /tmp/wlp.zip -d /opt/ibm \ - && chown -R 1001:0 /opt/ibm/wlp \ - && chmod -R g+rw /opt/ibm/wlp \ - && cp -a /opt/ibm/wlp/lafiles/. /licenses/ - -FROM icr.io/appcafe/ibm-semeru-runtimes:open-21-jre-ubi9-minimal - -USER root - -ARG VERBOSE=false -ARG OPENJ9_SCC=true - -ARG LIBERTY_VERSION=26.0.0.6 -ARG LIBERTY_BUILD_LABEL=cl260620260531-0302 - -LABEL org.opencontainers.image.authors="Leo Christy Jesuraj, Thomas Watson, Wendy Raschke, Michal Broz" \ - org.opencontainers.image.vendor="IBM" \ - org.opencontainers.image.url="https://github.com/WASdev/ci.docker" \ - org.opencontainers.image.documentation="https://www.ibm.com/support/knowledgecenter/SSAW57_liberty/com.ibm.websphere.wlp.nd.multiplatform.doc/ae/cwlp_about.html" \ - org.opencontainers.image.version="$LIBERTY_VERSION" \ - org.opencontainers.image.revision="$LIBERTY_BUILD_LABEL" \ - org.opencontainers.image.description="This image contains the WebSphere Liberty runtime with IBM Semeru Runtime Open Edition OpenJDK with OpenJ9 and Red Hat's UBI 9 minimal as the base OS. For more information on this image please see https://ibm.biz/wl-app-image-template" \ - org.opencontainers.image.title="IBM WebSphere Liberty" \ - liberty.version="$LIBERTY_VERSION" \ - com.ibm.websphere.liberty.version="$LIBERTY_VERSION" \ - vendor="IBM" \ - name="IBM WebSphere Liberty" \ - version="$LIBERTY_VERSION" \ - summary="Image for WebSphere Liberty with IBM Semeru Runtime Open Edition OpenJDK with OpenJ9 and Red Hat's UBI 9 minimal" \ - description="This image contains the WebSphere Liberty runtime with IBM Semeru Runtime Open Edition OpenJDK with OpenJ9 and Red Hat's UBI 9 minimal as the base OS. For more information on this image please see https://ibm.biz/wl-app-image-template" - -ENV PATH=$PATH:/opt/ibm/wlp/bin:/opt/ibm/helpers/build:/opt/ibm/helpers/runtime - -# Add labels for consumption by IBM Product Insights -LABEL "ProductID"="fbf6a96d49214c0abc6a3bc5da6e48cd" \ - "ProductName"="WebSphere Application Server Liberty" \ - "ProductVersion"="$LIBERTY_VERSION" \ - "BuildLabel"="$LIBERTY_BUILD_LABEL" - -# 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; - -# Add default user 1001 and create wlp with right user/permissions before copying -RUN microdnf -y install shadow-utils findutils openssl \ - && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ - && mkdir -p /opt/ibm/wlp \ - && chown -R 1001:0 /opt/ibm/wlp \ - && chmod -R g+rw /opt/ibm/wlp \ - && microdnf remove -y shadow-utils \ - && microdnf clean all - -# Copy the runtime and licenses -COPY --from=getRuntime --chown=1001:0 /opt/ibm/wlp /opt/ibm/wlp -COPY --from=getRuntime /licenses /licenses - -# Set Path Shortcuts -ENV LOG_DIR=/liberty/logs \ - WLP_OUTPUT_DIR=/opt/ibm/wlp/output \ - OPENJ9_SCC=$OPENJ9_SCC - -# Configure WebSphere Liberty -RUN /opt/ibm/wlp/bin/server create \ - && rm -rf $WLP_OUTPUT_DIR/.classCache /output/workarea \ - && rm -rf /opt/ibm/wlp/usr/servers/defaultServer/server.env - -COPY NOTICES /opt/ibm/NOTICES -COPY helpers/ /opt/ibm/helpers/ -COPY fixes/ /opt/ibm/fixes/ - -# Create symlinks && set permissions for non-root user -RUN mkdir /logs \ - && chown -R 1001:0 /logs \ - && chmod -R g+rw /logs \ - && mkdir /etc/wlp \ - && mkdir -p /opt/ibm/wlp/usr/shared/resources/lib.index.cache \ - && mkdir -p /home/default \ - && mkdir /output \ - && chmod -t /output \ - && rm -rf /output \ - && ln -s $WLP_OUTPUT_DIR/defaultServer /output \ - && ln -s /opt/ibm/wlp/usr/servers/defaultServer /config \ - && ln -s /opt/ibm/wlp /liberty \ - && ln -s /opt/ibm/fixes /fixes \ - && ln -s /opt/ibm/wlp/usr/shared/resources/lib.index.cache /lib.index.cache \ - && mkdir -p /config/configDropins/defaults \ - && mkdir -p /config/configDropins/overrides \ - && chown -R 1001:0 /config \ - && chmod -R g+rw /config \ - && chown -R 1001:0 /opt/ibm/helpers \ - && chmod -R ug+rwx /opt/ibm/helpers \ - && chown -R 1001:0 /opt/ibm/fixes \ - && chmod -R g+rwx /opt/ibm/fixes \ - && chown -R 1001:0 /opt/ibm/wlp/usr \ - && chmod -R g+rw /opt/ibm/wlp/usr \ - && chown -R 1001:0 /opt/ibm/wlp/output \ - && chmod -R g+rw /opt/ibm/wlp/output \ - && 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 \ - && chown -R 1001:0 /home/default \ - && chmod -R g+rw /home/default \ - && 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/ibm/wlp/output \ - && chmod -R g+rwx /opt/ibm/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/ibm/helpers/runtime/docker-server.sh"] -CMD ["/opt/ibm/wlp/bin/server", "run", "defaultServer"] diff --git a/ga/latest/kernel/Dockerfile.ubi9-minimal.openjdk25 b/ga/latest/kernel/Dockerfile.ubi9-minimal.openjdk25 deleted file mode 100644 index a59b1f35e..000000000 --- a/ga/latest/kernel/Dockerfile.ubi9-minimal.openjdk25 +++ /dev/null @@ -1,185 +0,0 @@ -# (C) Copyright IBM Corporation 2025. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -FROM icr.io/appcafe/ibm-semeru-runtimes:open-25-jre-ubi9-minimal AS getRuntime - -USER root - -ARG VERBOSE=false - -# Install WebSphere Liberty -ARG LIBERTY_VERSION=26.0.0.6 -ARG LIBERTY_URL -ARG DOWNLOAD_OPTIONS="" -ARG LIBERTY_SHA=7a614ebeb2fc9c6c542cc973b0575c0a8515173d - -# If there is a local copy of the image use that instead -COPY resources/ /tmp/ - -RUN microdnf -y install shadow-utils unzip wget findutils openssl \ - && mkdir -p /licenses \ - && useradd -u 1001 -r -g 0 -s /usr/sbin/nologin default \ - && LIBERTY_URL=${LIBERTY_URL:-$(wget -q -O - https://public.dhe.ibm.com/ibmdl/export/pub/software/websphere/wasdev/downloads/wlp/index.yml | grep -E "^\s*kernel:.*${LIBERTY_VERSION}\.zip" | sed -n 's/\s*kernel:\s//p' | tr -d '\r' )} \ - && if [ ! -f /tmp/wlp.zip ]; then wget $DOWNLOAD_OPTIONS $LIBERTY_URL -U UA-IBM-WebSphere-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 g+x /usr/bin \ - && unzip -q /tmp/wlp.zip -d /opt/ibm \ - && chown -R 1001:0 /opt/ibm/wlp \ - && chmod -R g+rw /opt/ibm/wlp \ - && cp -a /opt/ibm/wlp/lafiles/. /licenses/ - -FROM icr.io/appcafe/ibm-semeru-runtimes:open-25-jre-ubi9-minimal - -USER root - -ARG VERBOSE=false -ARG OPENJ9_SCC=true - -ARG LIBERTY_VERSION=26.0.0.6 -ARG LIBERTY_BUILD_LABEL=cl260620260531-0302 - -LABEL org.opencontainers.image.authors="Leo Christy Jesuraj, Iain Lewis, Melissa Lee, Kirby Chin" \ - org.opencontainers.image.vendor="IBM" \ - org.opencontainers.image.url="https://github.com/WASdev/ci.docker" \ - org.opencontainers.image.documentation="https://www.ibm.com/support/knowledgecenter/SSAW57_liberty/com.ibm.websphere.wlp.nd.multiplatform.doc/ae/cwlp_about.html" \ - org.opencontainers.image.version="$LIBERTY_VERSION" \ - org.opencontainers.image.revision="$LIBERTY_BUILD_LABEL" \ - org.opencontainers.image.description="This image contains the WebSphere Liberty runtime with IBM Semeru Runtime Open Edition OpenJDK with OpenJ9 and Red Hat's UBI 9 minimal as the base OS. For more information on this image please see https://ibm.biz/wl-app-image-template" \ - org.opencontainers.image.title="IBM WebSphere Liberty" \ - liberty.version="$LIBERTY_VERSION" \ - com.ibm.websphere.liberty.version="$LIBERTY_VERSION" \ - vendor="IBM" \ - name="IBM WebSphere Liberty" \ - version="$LIBERTY_VERSION" \ - summary="Image for WebSphere Liberty with IBM Semeru Runtime Open Edition OpenJDK with OpenJ9 and Red Hat's UBI 9 minimal" \ - description="This image contains the WebSphere Liberty runtime with IBM Semeru Runtime Open Edition OpenJDK with OpenJ9 and Red Hat's UBI 9 minimal as the base OS. For more information on this image please see https://ibm.biz/wl-app-image-template" - -ENV PATH=$PATH:/opt/ibm/wlp/bin:/opt/ibm/helpers/build:/opt/ibm/helpers/runtime - -# Add labels for consumption by IBM Product Insights -LABEL "ProductID"="fbf6a96d49214c0abc6a3bc5da6e48cd" \ - "ProductName"="WebSphere Application Server Liberty" \ - "ProductVersion"="$LIBERTY_VERSION" \ - "BuildLabel"="$LIBERTY_BUILD_LABEL" - -# 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; - -# Add default user 1001 and create wlp with right user/permissions before copying -RUN microdnf -y install shadow-utils findutils openssl \ - && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ - && mkdir -p /opt/ibm/wlp \ - && chown -R 1001:0 /opt/ibm/wlp \ - && chmod -R g+rw /opt/ibm/wlp \ - && microdnf remove -y shadow-utils \ - && microdnf clean all - -# Copy the runtime and licenses -COPY --from=getRuntime --chown=1001:0 /opt/ibm/wlp /opt/ibm/wlp -COPY --from=getRuntime /licenses /licenses - -# Set Path Shortcuts -ENV LOG_DIR=/liberty/logs \ - WLP_OUTPUT_DIR=/opt/ibm/wlp/output \ - OPENJ9_SCC=$OPENJ9_SCC - -# Configure WebSphere Liberty -RUN /opt/ibm/wlp/bin/server create \ - && rm -rf $WLP_OUTPUT_DIR/.classCache /output/workarea \ - && rm -rf /opt/ibm/wlp/usr/servers/defaultServer/server.env - -COPY NOTICES /opt/ibm/NOTICES -COPY helpers/ /opt/ibm/helpers/ -COPY fixes/ /opt/ibm/fixes/ - -# Create symlinks && set permissions for non-root user -RUN mkdir /logs \ - && chown -R 1001:0 /logs \ - && chmod -R g+rw /logs \ - && mkdir /etc/wlp \ - && mkdir -p /opt/ibm/wlp/usr/shared/resources/lib.index.cache \ - && mkdir -p /home/default \ - && mkdir /output \ - && chmod -t /output \ - && rm -rf /output \ - && ln -s $WLP_OUTPUT_DIR/defaultServer /output \ - && ln -s /opt/ibm/wlp/usr/servers/defaultServer /config \ - && ln -s /opt/ibm/wlp /liberty \ - && ln -s /opt/ibm/fixes /fixes \ - && ln -s /opt/ibm/wlp/usr/shared/resources/lib.index.cache /lib.index.cache \ - && mkdir -p /config/configDropins/defaults \ - && mkdir -p /config/configDropins/overrides \ - && chown -R 1001:0 /config \ - && chmod -R g+rw /config \ - && chown -R 1001:0 /opt/ibm/helpers \ - && chmod -R ug+rwx /opt/ibm/helpers \ - && chown -R 1001:0 /opt/ibm/fixes \ - && chmod -R g+rwx /opt/ibm/fixes \ - && chown -R 1001:0 /opt/ibm/wlp/usr \ - && chmod -R g+rw /opt/ibm/wlp/usr \ - && chown -R 1001:0 /opt/ibm/wlp/output \ - && chmod -R g+rw /opt/ibm/wlp/output \ - && 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 \ - && chown -R 1001:0 /home/default \ - && chmod -R g+rw /home/default \ - && 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/ibm/wlp/output \ - && chmod -R g+rwx /opt/ibm/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/ibm/helpers/runtime/docker-server.sh"] -CMD ["/opt/ibm/wlp/bin/server", "run", "defaultServer"] diff --git a/ga/latest/kernel/Dockerfile.ubi9-minimal.openjdk8 b/ga/latest/kernel/Dockerfile.ubi9-minimal.openjdk8 deleted file mode 100644 index 6710cd0f5..000000000 --- a/ga/latest/kernel/Dockerfile.ubi9-minimal.openjdk8 +++ /dev/null @@ -1,185 +0,0 @@ -# (C) Copyright IBM Corporation 2023. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -FROM icr.io/appcafe/ibm-semeru-runtimes:open-8-jre-ubi9-minimal AS getRuntime - -USER root - -ARG VERBOSE=false - -# Install WebSphere Liberty -ARG LIBERTY_VERSION=26.0.0.6 -ARG LIBERTY_URL -ARG DOWNLOAD_OPTIONS="" -ARG LIBERTY_SHA=7a614ebeb2fc9c6c542cc973b0575c0a8515173d - -# If there is a local copy of the image use that instead -COPY resources/ /tmp/ - -RUN microdnf -y install shadow-utils unzip wget findutils openssl \ - && mkdir -p /licenses \ - && useradd -u 1001 -r -g 0 -s /usr/sbin/nologin default \ - && LIBERTY_URL=${LIBERTY_URL:-$(wget -q -O - https://public.dhe.ibm.com/ibmdl/export/pub/software/websphere/wasdev/downloads/wlp/index.yml | grep -E "^\s*kernel:.*${LIBERTY_VERSION}\.zip" | sed -n 's/\s*kernel:\s//p' | tr -d '\r' )} \ - && if [ ! -f /tmp/wlp.zip ]; then wget $DOWNLOAD_OPTIONS $LIBERTY_URL -U UA-IBM-WebSphere-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 g+x /usr/bin \ - && unzip -q /tmp/wlp.zip -d /opt/ibm \ - && chown -R 1001:0 /opt/ibm/wlp \ - && chmod -R g+rw /opt/ibm/wlp \ - && cp -a /opt/ibm/wlp/lafiles/. /licenses/ - -FROM icr.io/appcafe/ibm-semeru-runtimes:open-8-jre-ubi9-minimal - -USER root - -ARG VERBOSE=false -ARG OPENJ9_SCC=true - -ARG LIBERTY_VERSION=26.0.0.6 -ARG LIBERTY_BUILD_LABEL=cl260620260531-0302 - -LABEL org.opencontainers.image.authors="Leo Christy Jesuraj, Iain Lewis, Melissa Lee, Kirby Chin" \ - org.opencontainers.image.vendor="IBM" \ - org.opencontainers.image.url="https://github.com/WASdev/ci.docker" \ - org.opencontainers.image.documentation="https://www.ibm.com/support/knowledgecenter/SSAW57_liberty/com.ibm.websphere.wlp.nd.multiplatform.doc/ae/cwlp_about.html" \ - org.opencontainers.image.version="$LIBERTY_VERSION" \ - org.opencontainers.image.revision="$LIBERTY_BUILD_LABEL" \ - org.opencontainers.image.description="This image contains the WebSphere Liberty runtime with IBM Semeru Runtime Open Edition OpenJDK with OpenJ9 and Red Hat's UBI 9 minimal as the base OS. For more information on this image please see https://ibm.biz/wl-app-image-template" \ - org.opencontainers.image.title="IBM WebSphere Liberty" \ - liberty.version="$LIBERTY_VERSION" \ - com.ibm.websphere.liberty.version="$LIBERTY_VERSION" \ - vendor="IBM" \ - name="IBM WebSphere Liberty" \ - version="$LIBERTY_VERSION" \ - summary="Image for WebSphere Liberty with IBM Semeru Runtime Open Edition OpenJDK with OpenJ9 and Red Hat's UBI 9 minimal" \ - description="This image contains the WebSphere Liberty runtime with IBM Semeru Runtime Open Edition OpenJDK with OpenJ9 and Red Hat's UBI 9 minimal as the base OS. For more information on this image please see https://ibm.biz/wl-app-image-template" - -ENV PATH=$PATH:/opt/ibm/wlp/bin:/opt/ibm/helpers/build:/opt/ibm/helpers/runtime - -# Add labels for consumption by IBM Product Insights -LABEL "ProductID"="fbf6a96d49214c0abc6a3bc5da6e48cd" \ - "ProductName"="WebSphere Application Server Liberty" \ - "ProductVersion"="$LIBERTY_VERSION" \ - "BuildLabel"="$LIBERTY_BUILD_LABEL" - -# 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; - -# Add default user 1001 and create wlp with right user/permissions before copying -RUN microdnf -y install shadow-utils findutils openssl \ - && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \ - && mkdir -p /opt/ibm/wlp \ - && chown -R 1001:0 /opt/ibm/wlp \ - && chmod -R g+rw /opt/ibm/wlp \ - && microdnf remove -y shadow-utils \ - && microdnf clean all - -# Copy the runtime and licenses -COPY --from=getRuntime --chown=1001:0 /opt/ibm/wlp /opt/ibm/wlp -COPY --from=getRuntime /licenses /licenses - -# Set Path Shortcuts -ENV LOG_DIR=/liberty/logs \ - WLP_OUTPUT_DIR=/opt/ibm/wlp/output \ - OPENJ9_SCC=$OPENJ9_SCC - -# Configure WebSphere Liberty -RUN /opt/ibm/wlp/bin/server create \ - && rm -rf $WLP_OUTPUT_DIR/.classCache /output/workarea \ - && rm -rf /opt/ibm/wlp/usr/servers/defaultServer/server.env - -COPY NOTICES /opt/ibm/NOTICES -COPY helpers/ /opt/ibm/helpers/ -COPY fixes/ /opt/ibm/fixes/ - -# Create symlinks && set permissions for non-root user -RUN mkdir /logs \ - && chown -R 1001:0 /logs \ - && chmod -R g+rw /logs \ - && mkdir /etc/wlp \ - && mkdir -p /opt/ibm/wlp/usr/shared/resources/lib.index.cache \ - && mkdir -p /home/default \ - && mkdir /output \ - && chmod -t /output \ - && rm -rf /output \ - && ln -s $WLP_OUTPUT_DIR/defaultServer /output \ - && ln -s /opt/ibm/wlp/usr/servers/defaultServer /config \ - && ln -s /opt/ibm/wlp /liberty \ - && ln -s /opt/ibm/fixes /fixes \ - && ln -s /opt/ibm/wlp/usr/shared/resources/lib.index.cache /lib.index.cache \ - && mkdir -p /config/configDropins/defaults \ - && mkdir -p /config/configDropins/overrides \ - && chown -R 1001:0 /config \ - && chmod -R g+rw /config \ - && chown -R 1001:0 /opt/ibm/helpers \ - && chmod -R ug+rwx /opt/ibm/helpers \ - && chown -R 1001:0 /opt/ibm/fixes \ - && chmod -R g+rwx /opt/ibm/fixes \ - && chown -R 1001:0 /opt/ibm/wlp/usr \ - && chmod -R g+rw /opt/ibm/wlp/usr \ - && chown -R 1001:0 /opt/ibm/wlp/output \ - && chmod -R g+rw /opt/ibm/wlp/output \ - && 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 \ - && chown -R 1001:0 /home/default \ - && chmod -R g+rw /home/default \ - && 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/ibm/wlp/output \ - && chmod -R g+rwx /opt/ibm/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/ibm/helpers/runtime/docker-server.sh"] -CMD ["/opt/ibm/wlp/bin/server", "run", "defaultServer"] From c5962584349cc14ca369b1594efd7c6897e155da Mon Sep 17 00:00:00 2001 From: Kirby Chin <37311900+kabicin@users.noreply.github.com> Date: Fri, 12 Jun 2026 16:20:42 -0400 Subject: [PATCH 3/6] Update full images to ubi10 --- ...ava8 => Dockerfile.ubi10-minimal.ibmjava8} | 0 .../full/Dockerfile.ubi10-minimal.openjdk11 | 2 +- .../full/Dockerfile.ubi10-minimal.openjdk8 | 2 +- .../full/Dockerfile.ubi9-minimal.openjdk11 | 51 ------------------- .../full/Dockerfile.ubi9-minimal.openjdk17 | 51 ------------------- .../full/Dockerfile.ubi9-minimal.openjdk21 | 51 ------------------- .../full/Dockerfile.ubi9-minimal.openjdk25 | 51 ------------------- .../full/Dockerfile.ubi9-minimal.openjdk8 | 51 ------------------- 8 files changed, 2 insertions(+), 257 deletions(-) rename ga/latest/full/{Dockerfile.ubi9-minimal.ibmjava8 => Dockerfile.ubi10-minimal.ibmjava8} (100%) delete mode 100644 ga/latest/full/Dockerfile.ubi9-minimal.openjdk11 delete mode 100644 ga/latest/full/Dockerfile.ubi9-minimal.openjdk17 delete mode 100644 ga/latest/full/Dockerfile.ubi9-minimal.openjdk21 delete mode 100644 ga/latest/full/Dockerfile.ubi9-minimal.openjdk25 delete mode 100644 ga/latest/full/Dockerfile.ubi9-minimal.openjdk8 diff --git a/ga/latest/full/Dockerfile.ubi9-minimal.ibmjava8 b/ga/latest/full/Dockerfile.ubi10-minimal.ibmjava8 similarity index 100% rename from ga/latest/full/Dockerfile.ubi9-minimal.ibmjava8 rename to ga/latest/full/Dockerfile.ubi10-minimal.ibmjava8 diff --git a/ga/latest/full/Dockerfile.ubi10-minimal.openjdk11 b/ga/latest/full/Dockerfile.ubi10-minimal.openjdk11 index d87df8254..00b239e95 100644 --- a/ga/latest/full/Dockerfile.ubi10-minimal.openjdk11 +++ b/ga/latest/full/Dockerfile.ubi10-minimal.openjdk11 @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -ARG PARENT_IMAGE=icr.io/appcafe/websphere-liberty:kernel-java11-openj9-ubi10-minimal +ARG PARENT_IMAGE=icr.io/appcafe/websphere-liberty:kernel-java11-openj9-ubi-minimal FROM $PARENT_IMAGE AS installBundle ARG VERBOSE=false diff --git a/ga/latest/full/Dockerfile.ubi10-minimal.openjdk8 b/ga/latest/full/Dockerfile.ubi10-minimal.openjdk8 index 9d4f540df..c8635a771 100644 --- a/ga/latest/full/Dockerfile.ubi10-minimal.openjdk8 +++ b/ga/latest/full/Dockerfile.ubi10-minimal.openjdk8 @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -ARG PARENT_IMAGE=icr.io/appcafe/websphere-liberty:kernel-java8-openj9-ubi10-minimal +ARG PARENT_IMAGE=icr.io/appcafe/websphere-liberty:kernel-java8-openj9-ubi-minimal FROM $PARENT_IMAGE AS installBundle ARG VERBOSE=false diff --git a/ga/latest/full/Dockerfile.ubi9-minimal.openjdk11 b/ga/latest/full/Dockerfile.ubi9-minimal.openjdk11 deleted file mode 100644 index 480ac5c12..000000000 --- a/ga/latest/full/Dockerfile.ubi9-minimal.openjdk11 +++ /dev/null @@ -1,51 +0,0 @@ -# (C) Copyright IBM Corporation 2023. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -ARG PARENT_IMAGE=icr.io/appcafe/websphere-liberty:kernel-java11-openj9-ubi-minimal -FROM $PARENT_IMAGE AS installBundle - -ARG VERBOSE=false -ARG REPOSITORIES_PROPERTIES="" - -# If there is a local copy of the repository use that instead -COPY resources/ /tmp/ - -# Install the base bundle -RUN set -eux; \ - if [ ! -z "$REPOSITORIES_PROPERTIES" ]; then \ - mkdir /opt/ibm/wlp/etc/; \ - echo "$REPOSITORIES_PROPERTIES" > /opt/ibm/wlp/etc/repositories.properties; \ - installUtility install --acceptLicense baseBundle; \ - rm /opt/ibm/wlp/etc/repositories.properties; \ - elif [ -f /tmp/wlpRepo.zip ]; then \ - installUtility install --acceptLicense baseBundle --from=/tmp/wlpRepo.zip; \ - else \ - installUtility install --acceptLicense baseBundle; \ - fi; \ - rm -rf /output/workarea /output/logs; \ - find /opt/ibm/wlp ! -perm -g=rw -print0 | xargs -r -0 chmod g+rw; - -ARG PARENT_IMAGE=icr.io/appcafe/websphere-liberty:kernel-java11-openj9-ubi-minimal -FROM $PARENT_IMAGE -ARG VERBOSE=false - -# Copy the runtime -COPY --from=installBundle --chown=1001:0 /opt/ibm/wlp /opt/ibm/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/ibm/wlp/output ! -perm -g=rwx -print0 | xargs -0 -r chmod g+rwx diff --git a/ga/latest/full/Dockerfile.ubi9-minimal.openjdk17 b/ga/latest/full/Dockerfile.ubi9-minimal.openjdk17 deleted file mode 100644 index fc02408ba..000000000 --- a/ga/latest/full/Dockerfile.ubi9-minimal.openjdk17 +++ /dev/null @@ -1,51 +0,0 @@ -# (C) Copyright IBM Corporation 2025. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -ARG PARENT_IMAGE=icr.io/appcafe/websphere-liberty:kernel-java17-openj9-ubi-minimal -FROM $PARENT_IMAGE AS installBundle - -ARG VERBOSE=false -ARG REPOSITORIES_PROPERTIES="" - -# If there is a local copy of the repository use that instead -COPY resources/ /tmp/ - -# Install the base bundle -RUN set -eux; \ - if [ ! -z "$REPOSITORIES_PROPERTIES" ]; then \ - mkdir /opt/ibm/wlp/etc/; \ - echo "$REPOSITORIES_PROPERTIES" > /opt/ibm/wlp/etc/repositories.properties; \ - installUtility install --acceptLicense baseBundle; \ - rm /opt/ibm/wlp/etc/repositories.properties; \ - elif [ -f /tmp/wlpRepo.zip ]; then \ - installUtility install --acceptLicense baseBundle --from=/tmp/wlpRepo.zip; \ - else \ - installUtility install --acceptLicense baseBundle; \ - fi; \ - rm -rf /output/workarea /output/logs; \ - find /opt/ibm/wlp ! -perm -g=rw -print0 | xargs -r -0 chmod g+rw; - -ARG PARENT_IMAGE=icr.io/appcafe/websphere-liberty:kernel-java17-openj9-ubi-minimal -FROM $PARENT_IMAGE -ARG VERBOSE=false - -# Copy the runtime -COPY --from=installBundle --chown=1001:0 /opt/ibm/wlp /opt/ibm/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/ibm/wlp/output ! -perm -g=rwx -print0 | xargs -0 -r chmod g+rwx diff --git a/ga/latest/full/Dockerfile.ubi9-minimal.openjdk21 b/ga/latest/full/Dockerfile.ubi9-minimal.openjdk21 deleted file mode 100644 index ae172a1b4..000000000 --- a/ga/latest/full/Dockerfile.ubi9-minimal.openjdk21 +++ /dev/null @@ -1,51 +0,0 @@ -# (C) Copyright IBM Corporation 2023. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -ARG PARENT_IMAGE=icr.io/appcafe/websphere-liberty:kernel-java21-openj9-ubi-minimal -FROM $PARENT_IMAGE AS installBundle - -ARG VERBOSE=false -ARG REPOSITORIES_PROPERTIES="" - -# If there is a local copy of the repository use that instead -COPY resources/ /tmp/ - -# Install the base bundle -RUN set -eux; \ - if [ ! -z "$REPOSITORIES_PROPERTIES" ]; then \ - mkdir /opt/ibm/wlp/etc/; \ - echo "$REPOSITORIES_PROPERTIES" > /opt/ibm/wlp/etc/repositories.properties; \ - installUtility install --acceptLicense baseBundle; \ - rm /opt/ibm/wlp/etc/repositories.properties; \ - elif [ -f /tmp/wlpRepo.zip ]; then \ - installUtility install --acceptLicense baseBundle --from=/tmp/wlpRepo.zip; \ - else \ - installUtility install --acceptLicense baseBundle; \ - fi; \ - rm -rf /output/workarea /output/logs; \ - find /opt/ibm/wlp ! -perm -g=rw -print0 | xargs -r -0 chmod g+rw; - -ARG PARENT_IMAGE=icr.io/appcafe/websphere-liberty:kernel-java21-openj9-ubi-minimal -FROM $PARENT_IMAGE -ARG VERBOSE=false - -# Copy the runtime -COPY --from=installBundle --chown=1001:0 /opt/ibm/wlp /opt/ibm/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/ibm/wlp/output ! -perm -g=rwx -print0 | xargs -0 -r chmod g+rwx diff --git a/ga/latest/full/Dockerfile.ubi9-minimal.openjdk25 b/ga/latest/full/Dockerfile.ubi9-minimal.openjdk25 deleted file mode 100644 index 941678b02..000000000 --- a/ga/latest/full/Dockerfile.ubi9-minimal.openjdk25 +++ /dev/null @@ -1,51 +0,0 @@ -# (C) Copyright IBM Corporation 2025. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -ARG PARENT_IMAGE=icr.io/appcafe/websphere-liberty:kernel-java25-openj9-ubi-minimal -FROM $PARENT_IMAGE AS installBundle - -ARG VERBOSE=false -ARG REPOSITORIES_PROPERTIES="" - -# If there is a local copy of the repository use that instead -COPY resources/ /tmp/ - -# Install the base bundle -RUN set -eux; \ - if [ ! -z "$REPOSITORIES_PROPERTIES" ]; then \ - mkdir /opt/ibm/wlp/etc/; \ - echo "$REPOSITORIES_PROPERTIES" > /opt/ibm/wlp/etc/repositories.properties; \ - installUtility install --acceptLicense baseBundle; \ - rm /opt/ibm/wlp/etc/repositories.properties; \ - elif [ -f /tmp/wlpRepo.zip ]; then \ - installUtility install --acceptLicense baseBundle --from=/tmp/wlpRepo.zip; \ - else \ - installUtility install --acceptLicense baseBundle; \ - fi; \ - rm -rf /output/workarea /output/logs; \ - find /opt/ibm/wlp ! -perm -g=rw -print0 | xargs -r -0 chmod g+rw; - -ARG PARENT_IMAGE=icr.io/appcafe/websphere-liberty:kernel-java25-openj9-ubi-minimal -FROM $PARENT_IMAGE -ARG VERBOSE=false - -# Copy the runtime -COPY --from=installBundle --chown=1001:0 /opt/ibm/wlp /opt/ibm/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/ibm/wlp/output ! -perm -g=rwx -print0 | xargs -0 -r chmod g+rwx diff --git a/ga/latest/full/Dockerfile.ubi9-minimal.openjdk8 b/ga/latest/full/Dockerfile.ubi9-minimal.openjdk8 deleted file mode 100644 index 47fa0f406..000000000 --- a/ga/latest/full/Dockerfile.ubi9-minimal.openjdk8 +++ /dev/null @@ -1,51 +0,0 @@ -# (C) Copyright IBM Corporation 2023. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -ARG PARENT_IMAGE=icr.io/appcafe/websphere-liberty:kernel-java8-openj9-ubi-minimal -FROM $PARENT_IMAGE AS installBundle - -ARG VERBOSE=false -ARG REPOSITORIES_PROPERTIES="" - -# If there is a local copy of the repository use that instead -COPY resources/ /tmp/ - -# Install the base bundle -RUN set -eux; \ - if [ ! -z "$REPOSITORIES_PROPERTIES" ]; then \ - mkdir /opt/ibm/wlp/etc/; \ - echo "$REPOSITORIES_PROPERTIES" > /opt/ibm/wlp/etc/repositories.properties; \ - installUtility install --acceptLicense baseBundle; \ - rm /opt/ibm/wlp/etc/repositories.properties; \ - elif [ -f /tmp/wlpRepo.zip ]; then \ - installUtility install --acceptLicense baseBundle --from=/tmp/wlpRepo.zip; \ - else \ - installUtility install --acceptLicense baseBundle; \ - fi; \ - rm -rf /output/workarea /output/logs; \ - find /opt/ibm/wlp ! -perm -g=rw -print0 | xargs -r -0 chmod g+rw; - -ARG PARENT_IMAGE=icr.io/appcafe/websphere-liberty:kernel-java8-openj9-ubi-minimal -FROM $PARENT_IMAGE -ARG VERBOSE=false - -# Copy the runtime -COPY --from=installBundle --chown=1001:0 /opt/ibm/wlp /opt/ibm/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/ibm/wlp/output ! -perm -g=rwx -print0 | xargs -0 -r chmod g+rwx From 3564de7cf59d6784b49f5e6a42d43a9cc454be12 Mon Sep 17 00:00:00 2001 From: Kirby Chin <37311900+kabicin@users.noreply.github.com> Date: Fri, 12 Jun 2026 16:25:42 -0400 Subject: [PATCH 4/6] Remove ubi10-minimal typo --- ga/latest/full/Dockerfile.ubi10-minimal.openjdk11 | 2 +- ga/latest/full/Dockerfile.ubi10-minimal.openjdk17 | 4 ++-- ga/latest/full/Dockerfile.ubi10-minimal.openjdk21 | 4 ++-- ga/latest/full/Dockerfile.ubi10-minimal.openjdk25 | 4 ++-- ga/latest/full/Dockerfile.ubi10-minimal.openjdk8 | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/ga/latest/full/Dockerfile.ubi10-minimal.openjdk11 b/ga/latest/full/Dockerfile.ubi10-minimal.openjdk11 index 00b239e95..480ac5c12 100644 --- a/ga/latest/full/Dockerfile.ubi10-minimal.openjdk11 +++ b/ga/latest/full/Dockerfile.ubi10-minimal.openjdk11 @@ -36,7 +36,7 @@ RUN set -eux; \ rm -rf /output/workarea /output/logs; \ find /opt/ibm/wlp ! -perm -g=rw -print0 | xargs -r -0 chmod g+rw; -ARG PARENT_IMAGE=icr.io/appcafe/websphere-liberty:kernel-java11-openj9-ubi10-minimal +ARG PARENT_IMAGE=icr.io/appcafe/websphere-liberty:kernel-java11-openj9-ubi-minimal FROM $PARENT_IMAGE ARG VERBOSE=false diff --git a/ga/latest/full/Dockerfile.ubi10-minimal.openjdk17 b/ga/latest/full/Dockerfile.ubi10-minimal.openjdk17 index 4a40168e7..fc02408ba 100644 --- a/ga/latest/full/Dockerfile.ubi10-minimal.openjdk17 +++ b/ga/latest/full/Dockerfile.ubi10-minimal.openjdk17 @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -ARG PARENT_IMAGE=icr.io/appcafe/websphere-liberty:kernel-java17-openj9-ubi10-minimal +ARG PARENT_IMAGE=icr.io/appcafe/websphere-liberty:kernel-java17-openj9-ubi-minimal FROM $PARENT_IMAGE AS installBundle ARG VERBOSE=false @@ -36,7 +36,7 @@ RUN set -eux; \ rm -rf /output/workarea /output/logs; \ find /opt/ibm/wlp ! -perm -g=rw -print0 | xargs -r -0 chmod g+rw; -ARG PARENT_IMAGE=icr.io/appcafe/websphere-liberty:kernel-java17-openj9-ubi10-minimal +ARG PARENT_IMAGE=icr.io/appcafe/websphere-liberty:kernel-java17-openj9-ubi-minimal FROM $PARENT_IMAGE ARG VERBOSE=false diff --git a/ga/latest/full/Dockerfile.ubi10-minimal.openjdk21 b/ga/latest/full/Dockerfile.ubi10-minimal.openjdk21 index 5a786b025..ae172a1b4 100644 --- a/ga/latest/full/Dockerfile.ubi10-minimal.openjdk21 +++ b/ga/latest/full/Dockerfile.ubi10-minimal.openjdk21 @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -ARG PARENT_IMAGE=icr.io/appcafe/websphere-liberty:kernel-java21-openj9-ubi10-minimal +ARG PARENT_IMAGE=icr.io/appcafe/websphere-liberty:kernel-java21-openj9-ubi-minimal FROM $PARENT_IMAGE AS installBundle ARG VERBOSE=false @@ -36,7 +36,7 @@ RUN set -eux; \ rm -rf /output/workarea /output/logs; \ find /opt/ibm/wlp ! -perm -g=rw -print0 | xargs -r -0 chmod g+rw; -ARG PARENT_IMAGE=icr.io/appcafe/websphere-liberty:kernel-java21-openj9-ubi10-minimal +ARG PARENT_IMAGE=icr.io/appcafe/websphere-liberty:kernel-java21-openj9-ubi-minimal FROM $PARENT_IMAGE ARG VERBOSE=false diff --git a/ga/latest/full/Dockerfile.ubi10-minimal.openjdk25 b/ga/latest/full/Dockerfile.ubi10-minimal.openjdk25 index 0dfca93e5..941678b02 100644 --- a/ga/latest/full/Dockerfile.ubi10-minimal.openjdk25 +++ b/ga/latest/full/Dockerfile.ubi10-minimal.openjdk25 @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -ARG PARENT_IMAGE=icr.io/appcafe/websphere-liberty:kernel-java25-openj9-ubi10-minimal +ARG PARENT_IMAGE=icr.io/appcafe/websphere-liberty:kernel-java25-openj9-ubi-minimal FROM $PARENT_IMAGE AS installBundle ARG VERBOSE=false @@ -36,7 +36,7 @@ RUN set -eux; \ rm -rf /output/workarea /output/logs; \ find /opt/ibm/wlp ! -perm -g=rw -print0 | xargs -r -0 chmod g+rw; -ARG PARENT_IMAGE=icr.io/appcafe/websphere-liberty:kernel-java25-openj9-ubi10-minimal +ARG PARENT_IMAGE=icr.io/appcafe/websphere-liberty:kernel-java25-openj9-ubi-minimal FROM $PARENT_IMAGE ARG VERBOSE=false diff --git a/ga/latest/full/Dockerfile.ubi10-minimal.openjdk8 b/ga/latest/full/Dockerfile.ubi10-minimal.openjdk8 index c8635a771..47fa0f406 100644 --- a/ga/latest/full/Dockerfile.ubi10-minimal.openjdk8 +++ b/ga/latest/full/Dockerfile.ubi10-minimal.openjdk8 @@ -36,7 +36,7 @@ RUN set -eux; \ rm -rf /output/workarea /output/logs; \ find /opt/ibm/wlp ! -perm -g=rw -print0 | xargs -r -0 chmod g+rw; -ARG PARENT_IMAGE=icr.io/appcafe/websphere-liberty:kernel-java8-openj9-ubi10-minimal +ARG PARENT_IMAGE=icr.io/appcafe/websphere-liberty:kernel-java8-openj9-ubi-minimal FROM $PARENT_IMAGE ARG VERBOSE=false From afa47cf12fc7bf36e7fa5d4dd9656d6ab06a1b5b Mon Sep 17 00:00:00 2001 From: Kirby Chin <37311900+kabicin@users.noreply.github.com> Date: Fri, 12 Jun 2026 16:27:14 -0400 Subject: [PATCH 5/6] Update ubi9 to ubi10 --- ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk11 | 4 ++-- ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk17 | 4 ++-- ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk21 | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk11 b/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk11 index 07dcaaa4f..f3090734f 100644 --- a/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk11 +++ b/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk11 @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -FROM icr.io/appcafe/ibm-semeru-runtimes:open-11-jre-ubi9-minimal AS getRuntime +FROM icr.io/appcafe/ibm-semeru-runtimes:open-11-jre-ubi10-minimal AS getRuntime USER root @@ -40,7 +40,7 @@ RUN microdnf -y install shadow-utils unzip wget findutils openssl \ && chmod -R g+rw /opt/ibm/wlp \ && cp -a /opt/ibm/wlp/lafiles/. /licenses/ -FROM icr.io/appcafe/ibm-semeru-runtimes:open-11-jre-ubi9-minimal +FROM icr.io/appcafe/ibm-semeru-runtimes:open-11-jre-ubi10-minimal USER root diff --git a/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk17 b/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk17 index 6e793aa3e..b71a02173 100644 --- a/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk17 +++ b/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk17 @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -FROM icr.io/appcafe/ibm-semeru-runtimes:open-17-jre-ubi9-minimal AS getRuntime +FROM icr.io/appcafe/ibm-semeru-runtimes:open-17-jre-ubi10-minimal AS getRuntime USER root @@ -40,7 +40,7 @@ RUN microdnf -y install shadow-utils unzip wget findutils openssl \ && chmod -R g+rw /opt/ibm/wlp \ && cp -a /opt/ibm/wlp/lafiles/. /licenses/ -FROM icr.io/appcafe/ibm-semeru-runtimes:open-17-jre-ubi9-minimal +FROM icr.io/appcafe/ibm-semeru-runtimes:open-17-jre-ubi10-minimal USER root diff --git a/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk21 b/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk21 index eef1e52a6..383464195 100644 --- a/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk21 +++ b/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk21 @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -FROM icr.io/appcafe/ibm-semeru-runtimes:open-21-jre-ubi9-minimal AS getRuntime +FROM icr.io/appcafe/ibm-semeru-runtimes:open-21-jre-ubi10-minimal AS getRuntime USER root @@ -40,7 +40,7 @@ RUN microdnf -y install shadow-utils unzip wget findutils openssl \ && chmod -R g+rw /opt/ibm/wlp \ && cp -a /opt/ibm/wlp/lafiles/. /licenses/ -FROM icr.io/appcafe/ibm-semeru-runtimes:open-21-jre-ubi9-minimal +FROM icr.io/appcafe/ibm-semeru-runtimes:open-21-jre-ubi10-minimal USER root From 4fefa8e9e806b2e4ca437909134832d8c4d4f98f Mon Sep 17 00:00:00 2001 From: Kirby Chin <37311900+kabicin@users.noreply.github.com> Date: Mon, 15 Jun 2026 09:27:38 -0400 Subject: [PATCH 6/6] Update copyright year --- ga/latest/full/Dockerfile.ubi10-minimal.ibmjava8 | 2 +- ga/latest/full/Dockerfile.ubi10-minimal.openjdk11 | 2 +- ga/latest/full/Dockerfile.ubi10-minimal.openjdk17 | 2 +- ga/latest/full/Dockerfile.ubi10-minimal.openjdk21 | 2 +- ga/latest/full/Dockerfile.ubi10-minimal.openjdk25 | 2 +- ga/latest/full/Dockerfile.ubi10-minimal.openjdk8 | 2 +- ga/latest/kernel/Dockerfile.ubi10-minimal.ibmjava8 | 2 +- ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk11 | 2 +- ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk17 | 2 +- ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk21 | 2 +- ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk25 | 2 +- ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk8 | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) diff --git a/ga/latest/full/Dockerfile.ubi10-minimal.ibmjava8 b/ga/latest/full/Dockerfile.ubi10-minimal.ibmjava8 index e66222d9f..6e27013e2 100644 --- a/ga/latest/full/Dockerfile.ubi10-minimal.ibmjava8 +++ b/ga/latest/full/Dockerfile.ubi10-minimal.ibmjava8 @@ -1,4 +1,4 @@ -# (C) Copyright IBM Corporation 2025. +# (C) Copyright IBM Corporation 2025, 2026. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/ga/latest/full/Dockerfile.ubi10-minimal.openjdk11 b/ga/latest/full/Dockerfile.ubi10-minimal.openjdk11 index 480ac5c12..e2291a6fd 100644 --- a/ga/latest/full/Dockerfile.ubi10-minimal.openjdk11 +++ b/ga/latest/full/Dockerfile.ubi10-minimal.openjdk11 @@ -1,4 +1,4 @@ -# (C) Copyright IBM Corporation 2023. +# (C) Copyright IBM Corporation 2023, 2026. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/ga/latest/full/Dockerfile.ubi10-minimal.openjdk17 b/ga/latest/full/Dockerfile.ubi10-minimal.openjdk17 index fc02408ba..48ca741f4 100644 --- a/ga/latest/full/Dockerfile.ubi10-minimal.openjdk17 +++ b/ga/latest/full/Dockerfile.ubi10-minimal.openjdk17 @@ -1,4 +1,4 @@ -# (C) Copyright IBM Corporation 2025. +# (C) Copyright IBM Corporation 2025, 2026. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/ga/latest/full/Dockerfile.ubi10-minimal.openjdk21 b/ga/latest/full/Dockerfile.ubi10-minimal.openjdk21 index ae172a1b4..fcc45e04e 100644 --- a/ga/latest/full/Dockerfile.ubi10-minimal.openjdk21 +++ b/ga/latest/full/Dockerfile.ubi10-minimal.openjdk21 @@ -1,4 +1,4 @@ -# (C) Copyright IBM Corporation 2023. +# (C) Copyright IBM Corporation 2023, 2026. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/ga/latest/full/Dockerfile.ubi10-minimal.openjdk25 b/ga/latest/full/Dockerfile.ubi10-minimal.openjdk25 index 941678b02..9909d945d 100644 --- a/ga/latest/full/Dockerfile.ubi10-minimal.openjdk25 +++ b/ga/latest/full/Dockerfile.ubi10-minimal.openjdk25 @@ -1,4 +1,4 @@ -# (C) Copyright IBM Corporation 2025. +# (C) Copyright IBM Corporation 2025, 2026. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/ga/latest/full/Dockerfile.ubi10-minimal.openjdk8 b/ga/latest/full/Dockerfile.ubi10-minimal.openjdk8 index 47fa0f406..ba7d2ccae 100644 --- a/ga/latest/full/Dockerfile.ubi10-minimal.openjdk8 +++ b/ga/latest/full/Dockerfile.ubi10-minimal.openjdk8 @@ -1,4 +1,4 @@ -# (C) Copyright IBM Corporation 2023. +# (C) Copyright IBM Corporation 2023, 2026. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/ga/latest/kernel/Dockerfile.ubi10-minimal.ibmjava8 b/ga/latest/kernel/Dockerfile.ubi10-minimal.ibmjava8 index e01b1db93..c52a1dc4b 100644 --- a/ga/latest/kernel/Dockerfile.ubi10-minimal.ibmjava8 +++ b/ga/latest/kernel/Dockerfile.ubi10-minimal.ibmjava8 @@ -1,4 +1,4 @@ -# (C) Copyright IBM Corporation 2025. +# (C) Copyright IBM Corporation 2025, 2026. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk11 b/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk11 index f3090734f..d15bc823b 100644 --- a/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk11 +++ b/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk11 @@ -1,4 +1,4 @@ -# (C) Copyright IBM Corporation 2023. +# (C) Copyright IBM Corporation 2023, 2026. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk17 b/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk17 index b71a02173..415f87faa 100644 --- a/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk17 +++ b/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk17 @@ -1,4 +1,4 @@ -# (C) Copyright IBM Corporation 2025. +# (C) Copyright IBM Corporation 2025, 2026. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk21 b/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk21 index 383464195..19c4183dc 100644 --- a/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk21 +++ b/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk21 @@ -1,4 +1,4 @@ -# (C) Copyright IBM Corporation 2023. +# (C) Copyright IBM Corporation 2023, 2026. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk25 b/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk25 index baa4f52e2..0a81ef110 100644 --- a/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk25 +++ b/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk25 @@ -1,4 +1,4 @@ -# (C) Copyright IBM Corporation 2025. +# (C) Copyright IBM Corporation 2025, 2026. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk8 b/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk8 index e236b410c..1feff1836 100644 --- a/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk8 +++ b/ga/latest/kernel/Dockerfile.ubi10-minimal.openjdk8 @@ -1,4 +1,4 @@ -# (C) Copyright IBM Corporation 2023. +# (C) Copyright IBM Corporation 2023, 2026. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License.