diff --git a/releases/26.0.0.9/full/Dockerfile.ubi.ibmjava8 b/releases/26.0.0.9/full/Dockerfile.ubi.ibmjava8
index e4431fc2..432f80d9 100644
--- a/releases/26.0.0.9/full/Dockerfile.ubi.ibmjava8
+++ b/releases/26.0.0.9/full/Dockerfile.ubi.ibmjava8
@@ -99,7 +99,8 @@ ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
LOG_DIR=/liberty/logs \
WLP_OUTPUT_DIR=/opt/ol/wlp/output \
WLP_SKIP_MAXPERMSIZE=true \
- OPENJ9_SCC=$OPENJ9_SCC
+ OPENJ9_SCC=$OPENJ9_SCC \
+ ENABLE_HTTP_PORT=true
# Configure Open Liberty
RUN /opt/ol/wlp/bin/server create --template=javaee8 \
diff --git a/releases/26.0.0.9/full/Dockerfile.ubi.openjdk11 b/releases/26.0.0.9/full/Dockerfile.ubi.openjdk11
index 2ddd2f34..13f94628 100644
--- a/releases/26.0.0.9/full/Dockerfile.ubi.openjdk11
+++ b/releases/26.0.0.9/full/Dockerfile.ubi.openjdk11
@@ -99,7 +99,8 @@ ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
LOG_DIR=/liberty/logs \
WLP_OUTPUT_DIR=/opt/ol/wlp/output \
WLP_SKIP_MAXPERMSIZE=true \
- OPENJ9_SCC=$OPENJ9_SCC
+ OPENJ9_SCC=$OPENJ9_SCC \
+ ENABLE_HTTP_PORT=true
# Configure Open Liberty
RUN /opt/ol/wlp/bin/server create --template=javaee8 \
diff --git a/releases/26.0.0.9/full/Dockerfile.ubi.openjdk17 b/releases/26.0.0.9/full/Dockerfile.ubi.openjdk17
index 2a36429a..adf8e9d6 100644
--- a/releases/26.0.0.9/full/Dockerfile.ubi.openjdk17
+++ b/releases/26.0.0.9/full/Dockerfile.ubi.openjdk17
@@ -99,7 +99,8 @@ ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
LOG_DIR=/liberty/logs \
WLP_OUTPUT_DIR=/opt/ol/wlp/output \
WLP_SKIP_MAXPERMSIZE=true \
- OPENJ9_SCC=$OPENJ9_SCC
+ OPENJ9_SCC=$OPENJ9_SCC \
+ ENABLE_HTTP_PORT=true
# Configure Open Liberty
RUN /opt/ol/wlp/bin/server create --template=javaee8 \
diff --git a/releases/26.0.0.9/full/Dockerfile.ubi.openjdk8 b/releases/26.0.0.9/full/Dockerfile.ubi.openjdk8
index 5496f809..04b25f9a 100644
--- a/releases/26.0.0.9/full/Dockerfile.ubi.openjdk8
+++ b/releases/26.0.0.9/full/Dockerfile.ubi.openjdk8
@@ -99,7 +99,8 @@ ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
LOG_DIR=/liberty/logs \
WLP_OUTPUT_DIR=/opt/ol/wlp/output \
WLP_SKIP_MAXPERMSIZE=true \
- OPENJ9_SCC=$OPENJ9_SCC
+ OPENJ9_SCC=$OPENJ9_SCC \
+ ENABLE_HTTP_PORT=true
# Configure Open Liberty
RUN /opt/ol/wlp/bin/server create --template=javaee8 \
diff --git a/releases/26.0.0.9/full/Dockerfile.ubi10-micro.ibmjava8 b/releases/26.0.0.9/full/Dockerfile.ubi10-micro.ibmjava8
new file mode 100644
index 00000000..f0d5b0fd
--- /dev/null
+++ b/releases/26.0.0.9/full/Dockerfile.ubi10-micro.ibmjava8
@@ -0,0 +1,53 @@
+ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:26.0.0.9-kernel-slim-java8-ibmjava-ubi-micro
+
+# ubi-micro has no package manager; install unzip from ubi-minimal and copy it in
+FROM registry.access.redhat.com/ubi10/ubi-minimal AS builder
+RUN microdnf -y install unzip && microdnf clean all
+
+FROM $PARENT_IMAGE AS installBundle
+
+ARG VERBOSE=false
+ARG LIBERTY_VERSION=26.0.0.9
+ARG FEATURES_SHA=971f2f2434b57f39c8329ffc075ed26ba5e23742
+
+# If there is a local copy of the repository use that instead
+COPY resources/ /tmp/
+
+# We need unzip when using a local repo; copy it from ubi-minimal builder stage
+USER root
+COPY --from=builder /usr/bin/unzip /usr/bin/unzip
+COPY --from=builder /usr/lib64/libbz2.so* /usr/lib64/
+USER 1001
+
+# Install all features
+RUN set -eux; \
+ if [ ! -f /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip ]; then \
+ wget -q https://repo1.maven.org/maven2/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json -O /tmp/features-$LIBERTY_VERSION.json; \
+ echo "$FEATURES_SHA /tmp/features-$LIBERTY_VERSION.json" > /tmp/features-$LIBERTY_VERSION.json.sha1; \
+ sha1sum -c /tmp/features-$LIBERTY_VERSION.json.sha1; \
+ else \
+ echo "$FEATURES_SHA /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip" > /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \
+ sha1sum -c /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \
+ mkdir /tmp/feature-repo-$LIBERTY_VERSION; \
+ unzip -d /tmp/feature-repo-$LIBERTY_VERSION /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip; \
+ cp /tmp/feature-repo-$LIBERTY_VERSION/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json /tmp; \
+ export FEATURE_LOCAL_REPO=/tmp/feature-repo-$LIBERTY_VERSION; \
+ export FEATURE_VERIFY=skip; \
+ fi; \
+ grep \"shortName\" /tmp/features-$LIBERTY_VERSION.json | sed -e 's/.* //' -e 's/,//' | xargs featureUtility installFeature --acceptLicense --noCache; \
+ rm -rf /output/workarea /output/logs; \
+ find /opt/ol/wlp ! -perm -g=rw -print0 | xargs -r -0 chmod g+rw;
+
+ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:26.0.0.9-kernel-slim-java8-ibmjava-ubi-micro
+FROM $PARENT_IMAGE
+ARG VERBOSE=false
+
+# Copy the runtime
+COPY --from=installBundle --chown=1001:0 /opt/ol/wlp /opt/ol/wlp
+
+COPY --chown=1001:0 server.xml /config/
+
+# Create a new SCC layer
+RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \
+ && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache \
+ && find /opt/ol/wlp/output ! -perm -g=rwx -print0 | xargs -0 -r chmod g+rwx
diff --git a/releases/26.0.0.9/full/Dockerfile.ubi10-micro.openjdk11 b/releases/26.0.0.9/full/Dockerfile.ubi10-micro.openjdk11
new file mode 100644
index 00000000..65554b06
--- /dev/null
+++ b/releases/26.0.0.9/full/Dockerfile.ubi10-micro.openjdk11
@@ -0,0 +1,52 @@
+ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:26.0.0.9-kernel-slim-java11-openj9-ubi-micro
+
+# ubi-micro has no package manager; install unzip from ubi-minimal and copy it in
+FROM registry.access.redhat.com/ubi10/ubi-minimal AS builder
+RUN microdnf -y install unzip && microdnf clean all
+
+FROM $PARENT_IMAGE AS installBundle
+
+ARG VERBOSE=false
+ARG LIBERTY_VERSION=26.0.0.9
+ARG FEATURES_SHA=971f2f2434b57f39c8329ffc075ed26ba5e23742
+
+# If there is a local copy of the repository use that instead
+COPY resources/ /tmp/
+
+# We need unzip when using a local repo; copy it from ubi-minimal builder stage
+USER root
+COPY --from=builder /usr/bin/unzip /usr/bin/unzip
+USER 1001
+
+# Install all features
+RUN set -eux; \
+ if [ ! -f /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip ]; then \
+ wget -q https://repo1.maven.org/maven2/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json -O /tmp/features-$LIBERTY_VERSION.json; \
+ echo "$FEATURES_SHA /tmp/features-$LIBERTY_VERSION.json" > /tmp/features-$LIBERTY_VERSION.json.sha1; \
+ sha1sum -c /tmp/features-$LIBERTY_VERSION.json.sha1; \
+ else \
+ echo "$FEATURES_SHA /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip" > /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \
+ sha1sum -c /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \
+ mkdir /tmp/feature-repo-$LIBERTY_VERSION; \
+ unzip -d /tmp/feature-repo-$LIBERTY_VERSION /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip; \
+ cp /tmp/feature-repo-$LIBERTY_VERSION/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json /tmp; \
+ export FEATURE_LOCAL_REPO=/tmp/feature-repo-$LIBERTY_VERSION; \
+ export FEATURE_VERIFY=skip; \
+ fi; \
+ grep \"shortName\" /tmp/features-$LIBERTY_VERSION.json | sed -e 's/.* //' -e 's/,//' | xargs featureUtility installFeature --acceptLicense --noCache; \
+ rm -rf /output/workarea /output/logs; \
+ find /opt/ol/wlp ! -perm -g=rw -print0 | xargs -r -0 chmod g+rw;
+
+ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:26.0.0.9-kernel-slim-java11-openj9-ubi-micro
+FROM $PARENT_IMAGE
+ARG VERBOSE=false
+
+# Copy the runtime
+COPY --from=installBundle --chown=1001:0 /opt/ol/wlp /opt/ol/wlp
+
+COPY --chown=1001:0 server.xml /config/
+
+# Create a new SCC layer
+RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \
+ && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache \
+ && find /opt/ol/wlp/output ! -perm -g=rwx -print0 | xargs -0 -r chmod g+rwx
diff --git a/releases/26.0.0.9/full/Dockerfile.ubi10-micro.openjdk17 b/releases/26.0.0.9/full/Dockerfile.ubi10-micro.openjdk17
new file mode 100644
index 00000000..5e7c7b31
--- /dev/null
+++ b/releases/26.0.0.9/full/Dockerfile.ubi10-micro.openjdk17
@@ -0,0 +1,52 @@
+ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:26.0.0.9-kernel-slim-java17-openj9-ubi-micro
+
+# ubi-micro has no package manager; install unzip from ubi-minimal and copy it in
+FROM registry.access.redhat.com/ubi10/ubi-minimal AS builder
+RUN microdnf -y install unzip && microdnf clean all
+
+FROM $PARENT_IMAGE AS installBundle
+
+ARG VERBOSE=false
+ARG LIBERTY_VERSION=26.0.0.9
+ARG FEATURES_SHA=971f2f2434b57f39c8329ffc075ed26ba5e23742
+
+# If there is a local copy of the repository use that instead
+COPY resources/ /tmp/
+
+# We need unzip when using a local repo; copy it from ubi-minimal builder stage
+USER root
+COPY --from=builder /usr/bin/unzip /usr/bin/unzip
+USER 1001
+
+# Install all features
+RUN set -eux; \
+ if [ ! -f /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip ]; then \
+ wget -q https://repo1.maven.org/maven2/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json -O /tmp/features-$LIBERTY_VERSION.json; \
+ echo "$FEATURES_SHA /tmp/features-$LIBERTY_VERSION.json" > /tmp/features-$LIBERTY_VERSION.json.sha1; \
+ sha1sum -c /tmp/features-$LIBERTY_VERSION.json.sha1; \
+ else \
+ echo "$FEATURES_SHA /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip" > /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \
+ sha1sum -c /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \
+ mkdir /tmp/feature-repo-$LIBERTY_VERSION; \
+ unzip -d /tmp/feature-repo-$LIBERTY_VERSION /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip; \
+ cp /tmp/feature-repo-$LIBERTY_VERSION/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json /tmp; \
+ export FEATURE_LOCAL_REPO=/tmp/feature-repo-$LIBERTY_VERSION; \
+ export FEATURE_VERIFY=skip; \
+ fi; \
+ grep \"shortName\" /tmp/features-$LIBERTY_VERSION.json | sed -e 's/.* //' -e 's/,//' | xargs featureUtility installFeature --acceptLicense --noCache; \
+ rm -rf /output/workarea /output/logs; \
+ find /opt/ol/wlp ! -perm -g=rw -print0 | xargs -r -0 chmod g+rw;
+
+ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:26.0.0.9-kernel-slim-java17-openj9-ubi-micro
+FROM $PARENT_IMAGE
+ARG VERBOSE=false
+
+# Copy the runtime
+COPY --from=installBundle --chown=1001:0 /opt/ol/wlp /opt/ol/wlp
+
+COPY --chown=1001:0 server.xml /config/
+
+# Create a new SCC layer
+RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \
+ && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache \
+ && find /opt/ol/wlp/output ! -perm -g=rwx -print0 | xargs -0 -r chmod g+rwx
diff --git a/releases/26.0.0.9/full/Dockerfile.ubi10-micro.openjdk21 b/releases/26.0.0.9/full/Dockerfile.ubi10-micro.openjdk21
new file mode 100644
index 00000000..76f77644
--- /dev/null
+++ b/releases/26.0.0.9/full/Dockerfile.ubi10-micro.openjdk21
@@ -0,0 +1,52 @@
+ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:26.0.0.9-kernel-slim-java21-openj9-ubi-micro
+
+# ubi-micro has no package manager; install unzip from ubi-minimal and copy it in
+FROM registry.access.redhat.com/ubi10/ubi-minimal AS builder
+RUN microdnf -y install unzip && microdnf clean all
+
+FROM $PARENT_IMAGE AS installBundle
+
+ARG VERBOSE=false
+ARG LIBERTY_VERSION=26.0.0.9
+ARG FEATURES_SHA=971f2f2434b57f39c8329ffc075ed26ba5e23742
+
+# If there is a local copy of the repository use that instead
+COPY resources/ /tmp/
+
+# We need unzip when using a local repo; copy it from ubi-minimal builder stage
+USER root
+COPY --from=builder /usr/bin/unzip /usr/bin/unzip
+USER 1001
+
+# Install all features
+RUN set -eux; \
+ if [ ! -f /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip ]; then \
+ wget -q https://repo1.maven.org/maven2/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json -O /tmp/features-$LIBERTY_VERSION.json; \
+ echo "$FEATURES_SHA /tmp/features-$LIBERTY_VERSION.json" > /tmp/features-$LIBERTY_VERSION.json.sha1; \
+ sha1sum -c /tmp/features-$LIBERTY_VERSION.json.sha1; \
+ else \
+ echo "$FEATURES_SHA /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip" > /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \
+ sha1sum -c /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \
+ mkdir /tmp/feature-repo-$LIBERTY_VERSION; \
+ unzip -d /tmp/feature-repo-$LIBERTY_VERSION /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip; \
+ cp /tmp/feature-repo-$LIBERTY_VERSION/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json /tmp; \
+ export FEATURE_LOCAL_REPO=/tmp/feature-repo-$LIBERTY_VERSION; \
+ export FEATURE_VERIFY=skip; \
+ fi; \
+ grep \"shortName\" /tmp/features-$LIBERTY_VERSION.json | sed -e 's/.* //' -e 's/,//' | xargs featureUtility installFeature --acceptLicense --noCache; \
+ rm -rf /output/workarea /output/logs; \
+ find /opt/ol/wlp ! -perm -g=rw -print0 | xargs -r -0 chmod g+rw;
+
+ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:26.0.0.9-kernel-slim-java21-openj9-ubi-micro
+FROM $PARENT_IMAGE
+ARG VERBOSE=false
+
+# Copy the runtime
+COPY --from=installBundle --chown=1001:0 /opt/ol/wlp /opt/ol/wlp
+
+COPY --chown=1001:0 server.xml /config/
+
+# Create a new SCC layer
+RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \
+ && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache \
+ && find /opt/ol/wlp/output ! -perm -g=rwx -print0 | xargs -0 -r chmod g+rwx
diff --git a/releases/26.0.0.9/full/Dockerfile.ubi10-micro.openjdk25 b/releases/26.0.0.9/full/Dockerfile.ubi10-micro.openjdk25
new file mode 100644
index 00000000..735609b2
--- /dev/null
+++ b/releases/26.0.0.9/full/Dockerfile.ubi10-micro.openjdk25
@@ -0,0 +1,52 @@
+ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:26.0.0.9-kernel-slim-java25-openj9-ubi-micro
+
+# ubi-micro has no package manager; install unzip from ubi-minimal and copy it in
+FROM registry.access.redhat.com/ubi10/ubi-minimal AS builder
+RUN microdnf -y install unzip && microdnf clean all
+
+FROM $PARENT_IMAGE AS installBundle
+
+ARG VERBOSE=false
+ARG LIBERTY_VERSION=26.0.0.9
+ARG FEATURES_SHA=971f2f2434b57f39c8329ffc075ed26ba5e23742
+
+# If there is a local copy of the repository use that instead
+COPY resources/ /tmp/
+
+# We need unzip when using a local repo; copy it from ubi-minimal builder stage
+USER root
+COPY --from=builder /usr/bin/unzip /usr/bin/unzip
+USER 1001
+
+# Install all features
+RUN set -eux; \
+ if [ ! -f /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip ]; then \
+ wget -q https://repo1.maven.org/maven2/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json -O /tmp/features-$LIBERTY_VERSION.json; \
+ echo "$FEATURES_SHA /tmp/features-$LIBERTY_VERSION.json" > /tmp/features-$LIBERTY_VERSION.json.sha1; \
+ sha1sum -c /tmp/features-$LIBERTY_VERSION.json.sha1; \
+ else \
+ echo "$FEATURES_SHA /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip" > /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \
+ sha1sum -c /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \
+ mkdir /tmp/feature-repo-$LIBERTY_VERSION; \
+ unzip -d /tmp/feature-repo-$LIBERTY_VERSION /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip; \
+ cp /tmp/feature-repo-$LIBERTY_VERSION/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json /tmp; \
+ export FEATURE_LOCAL_REPO=/tmp/feature-repo-$LIBERTY_VERSION; \
+ export FEATURE_VERIFY=skip; \
+ fi; \
+ grep \"shortName\" /tmp/features-$LIBERTY_VERSION.json | sed -e 's/.* //' -e 's/,//' | xargs featureUtility installFeature --acceptLicense --noCache; \
+ rm -rf /output/workarea /output/logs; \
+ find /opt/ol/wlp ! -perm -g=rw -print0 | xargs -r -0 chmod g+rw;
+
+ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:26.0.0.9-kernel-slim-java25-openj9-ubi-micro
+FROM $PARENT_IMAGE
+ARG VERBOSE=false
+
+# Copy the runtime
+COPY --from=installBundle --chown=1001:0 /opt/ol/wlp /opt/ol/wlp
+
+COPY --chown=1001:0 server.xml /config/
+
+# Create a new SCC layer
+RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \
+ && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache \
+ && find /opt/ol/wlp/output ! -perm -g=rwx -print0 | xargs -0 -r chmod g+rwx
diff --git a/releases/26.0.0.9/full/Dockerfile.ubi10-micro.openjdk8 b/releases/26.0.0.9/full/Dockerfile.ubi10-micro.openjdk8
new file mode 100644
index 00000000..066e749b
--- /dev/null
+++ b/releases/26.0.0.9/full/Dockerfile.ubi10-micro.openjdk8
@@ -0,0 +1,52 @@
+ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:26.0.0.9-kernel-slim-java8-openj9-ubi-micro
+
+# ubi-micro has no package manager; install unzip from ubi-minimal and copy it in
+FROM registry.access.redhat.com/ubi10/ubi-minimal AS builder
+RUN microdnf -y install unzip && microdnf clean all
+
+FROM $PARENT_IMAGE AS installBundle
+
+ARG VERBOSE=false
+ARG LIBERTY_VERSION=26.0.0.9
+ARG FEATURES_SHA=971f2f2434b57f39c8329ffc075ed26ba5e23742
+
+# If there is a local copy of the repository use that instead
+COPY resources/ /tmp/
+
+# We need unzip when using a local repo; copy it from ubi-minimal builder stage
+USER root
+COPY --from=builder /usr/bin/unzip /usr/bin/unzip
+USER 1001
+
+# Install all features
+RUN set -eux; \
+ if [ ! -f /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip ]; then \
+ wget -q https://repo1.maven.org/maven2/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json -O /tmp/features-$LIBERTY_VERSION.json; \
+ echo "$FEATURES_SHA /tmp/features-$LIBERTY_VERSION.json" > /tmp/features-$LIBERTY_VERSION.json.sha1; \
+ sha1sum -c /tmp/features-$LIBERTY_VERSION.json.sha1; \
+ else \
+ echo "$FEATURES_SHA /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip" > /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \
+ sha1sum -c /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \
+ mkdir /tmp/feature-repo-$LIBERTY_VERSION; \
+ unzip -d /tmp/feature-repo-$LIBERTY_VERSION /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip; \
+ cp /tmp/feature-repo-$LIBERTY_VERSION/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json /tmp; \
+ export FEATURE_LOCAL_REPO=/tmp/feature-repo-$LIBERTY_VERSION; \
+ export FEATURE_VERIFY=skip; \
+ fi; \
+ grep \"shortName\" /tmp/features-$LIBERTY_VERSION.json | sed -e 's/.* //' -e 's/,//' | xargs featureUtility installFeature --acceptLicense --noCache; \
+ rm -rf /output/workarea /output/logs; \
+ find /opt/ol/wlp ! -perm -g=rw -print0 | xargs -r -0 chmod g+rw;
+
+ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:26.0.0.9-kernel-slim-java8-openj9-ubi-micro
+FROM $PARENT_IMAGE
+ARG VERBOSE=false
+
+# Copy the runtime
+COPY --from=installBundle --chown=1001:0 /opt/ol/wlp /opt/ol/wlp
+
+COPY --chown=1001:0 server.xml /config/
+
+# Create a new SCC layer
+RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \
+ && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache \
+ && find /opt/ol/wlp/output ! -perm -g=rwx -print0 | xargs -0 -r chmod g+rwx
diff --git a/releases/26.0.0.9/full/Dockerfile.ubi10-minimal.ibmjava8 b/releases/26.0.0.9/full/Dockerfile.ubi10-minimal.ibmjava8
index 526e8228..4d331289 100644
--- a/releases/26.0.0.9/full/Dockerfile.ubi10-minimal.ibmjava8
+++ b/releases/26.0.0.9/full/Dockerfile.ubi10-minimal.ibmjava8
@@ -40,7 +40,7 @@ ARG VERBOSE=false
# Copy the runtime
COPY --from=installBundle --chown=1001:0 /opt/ol/wlp /opt/ol/wlp
-COPY --chown=1001:0 server.xml /config/
+COPY --chown=1001:0 server-http-port-enabled.xml /config/server.xml
# Create a new SCC layer
RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \
diff --git a/releases/26.0.0.9/full/Dockerfile.ubi10-minimal.openjdk11 b/releases/26.0.0.9/full/Dockerfile.ubi10-minimal.openjdk11
index 9b0aaace..45f89d66 100644
--- a/releases/26.0.0.9/full/Dockerfile.ubi10-minimal.openjdk11
+++ b/releases/26.0.0.9/full/Dockerfile.ubi10-minimal.openjdk11
@@ -40,7 +40,7 @@ ARG VERBOSE=false
# Copy the runtime
COPY --from=installBundle --chown=1001:0 /opt/ol/wlp /opt/ol/wlp
-COPY --chown=1001:0 server.xml /config/
+COPY --chown=1001:0 server-http-port-enabled.xml /config/server.xml
# Create a new SCC layer
RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \
diff --git a/releases/26.0.0.9/full/Dockerfile.ubi10-minimal.openjdk17 b/releases/26.0.0.9/full/Dockerfile.ubi10-minimal.openjdk17
index 322a9d45..736501f0 100644
--- a/releases/26.0.0.9/full/Dockerfile.ubi10-minimal.openjdk17
+++ b/releases/26.0.0.9/full/Dockerfile.ubi10-minimal.openjdk17
@@ -40,7 +40,7 @@ ARG VERBOSE=false
# Copy the runtime
COPY --from=installBundle --chown=1001:0 /opt/ol/wlp /opt/ol/wlp
-COPY --chown=1001:0 server.xml /config/
+COPY --chown=1001:0 server-http-port-enabled.xml /config/server.xml
# Create a new SCC layer
RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \
diff --git a/releases/26.0.0.9/full/Dockerfile.ubi10-minimal.openjdk21 b/releases/26.0.0.9/full/Dockerfile.ubi10-minimal.openjdk21
index 07127b39..fa5b5339 100644
--- a/releases/26.0.0.9/full/Dockerfile.ubi10-minimal.openjdk21
+++ b/releases/26.0.0.9/full/Dockerfile.ubi10-minimal.openjdk21
@@ -40,7 +40,7 @@ ARG VERBOSE=false
# Copy the runtime
COPY --from=installBundle --chown=1001:0 /opt/ol/wlp /opt/ol/wlp
-COPY --chown=1001:0 server.xml /config/
+COPY --chown=1001:0 server-http-port-enabled.xml /config/server.xml
# Create a new SCC layer
RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \
diff --git a/releases/26.0.0.9/full/Dockerfile.ubi10-minimal.openjdk25 b/releases/26.0.0.9/full/Dockerfile.ubi10-minimal.openjdk25
index 4b3b737f..df298ff1 100644
--- a/releases/26.0.0.9/full/Dockerfile.ubi10-minimal.openjdk25
+++ b/releases/26.0.0.9/full/Dockerfile.ubi10-minimal.openjdk25
@@ -40,7 +40,7 @@ ARG VERBOSE=false
# Copy the runtime
COPY --from=installBundle --chown=1001:0 /opt/ol/wlp /opt/ol/wlp
-COPY --chown=1001:0 server.xml /config/
+COPY --chown=1001:0 server-http-port-enabled.xml /config/server.xml
# Create a new SCC layer
RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \
diff --git a/releases/26.0.0.9/full/Dockerfile.ubi10-minimal.openjdk8 b/releases/26.0.0.9/full/Dockerfile.ubi10-minimal.openjdk8
index 649f92b6..4f7f7c7d 100644
--- a/releases/26.0.0.9/full/Dockerfile.ubi10-minimal.openjdk8
+++ b/releases/26.0.0.9/full/Dockerfile.ubi10-minimal.openjdk8
@@ -40,7 +40,7 @@ ARG VERBOSE=false
# Copy the runtime
COPY --from=installBundle --chown=1001:0 /opt/ol/wlp /opt/ol/wlp
-COPY --chown=1001:0 server.xml /config/
+COPY --chown=1001:0 server-http-port-enabled.xml /config/server.xml
# Create a new SCC layer
RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \
diff --git a/releases/26.0.0.9/full/Dockerfile.ubuntu.openjdk11 b/releases/26.0.0.9/full/Dockerfile.ubuntu.openjdk11
index 49e7a100..360d5379 100644
--- a/releases/26.0.0.9/full/Dockerfile.ubuntu.openjdk11
+++ b/releases/26.0.0.9/full/Dockerfile.ubuntu.openjdk11
@@ -77,7 +77,8 @@ ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
LOG_DIR=/liberty/logs \
WLP_OUTPUT_DIR=/opt/ol/wlp/output \
WLP_SKIP_MAXPERMSIZE=true \
- OPENJ9_SCC=$OPENJ9_SCC
+ OPENJ9_SCC=$OPENJ9_SCC \
+ ENABLE_HTTP_PORT=true
# Configure Open Liberty
RUN /opt/ol/wlp/bin/server create --template=javaee8 \
diff --git a/releases/26.0.0.9/full/Dockerfile.ubuntu.openjdk17 b/releases/26.0.0.9/full/Dockerfile.ubuntu.openjdk17
index 41656199..b4b35af4 100644
--- a/releases/26.0.0.9/full/Dockerfile.ubuntu.openjdk17
+++ b/releases/26.0.0.9/full/Dockerfile.ubuntu.openjdk17
@@ -77,7 +77,8 @@ ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
LOG_DIR=/liberty/logs \
WLP_OUTPUT_DIR=/opt/ol/wlp/output \
WLP_SKIP_MAXPERMSIZE=true \
- OPENJ9_SCC=$OPENJ9_SCC
+ OPENJ9_SCC=$OPENJ9_SCC \
+ ENABLE_HTTP_PORT=true
# Configure Open Liberty
RUN /opt/ol/wlp/bin/server create --template=javaee8 \
diff --git a/releases/26.0.0.9/full/Dockerfile.ubuntu.openjdk8 b/releases/26.0.0.9/full/Dockerfile.ubuntu.openjdk8
index 09250eec..476d68ad 100644
--- a/releases/26.0.0.9/full/Dockerfile.ubuntu.openjdk8
+++ b/releases/26.0.0.9/full/Dockerfile.ubuntu.openjdk8
@@ -77,7 +77,8 @@ ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
LOG_DIR=/liberty/logs \
WLP_OUTPUT_DIR=/opt/ol/wlp/output \
WLP_SKIP_MAXPERMSIZE=true \
- OPENJ9_SCC=$OPENJ9_SCC
+ OPENJ9_SCC=$OPENJ9_SCC \
+ ENABLE_HTTP_PORT=true
# Configure Open Liberty
RUN /opt/ol/wlp/bin/server create --template=javaee8 \
diff --git a/releases/26.0.0.9/full/helpers/build/configuration_snippets/http-port-disabled.xml b/releases/26.0.0.9/full/helpers/build/configuration_snippets/http-port-disabled.xml
new file mode 100644
index 00000000..4abd49cd
--- /dev/null
+++ b/releases/26.0.0.9/full/helpers/build/configuration_snippets/http-port-disabled.xml
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/releases/26.0.0.9/full/helpers/build/configuration_snippets/update-trigger-disabled.xml b/releases/26.0.0.9/full/helpers/build/configuration_snippets/update-trigger-disabled.xml
new file mode 100644
index 00000000..b97391b5
--- /dev/null
+++ b/releases/26.0.0.9/full/helpers/build/configuration_snippets/update-trigger-disabled.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
diff --git a/releases/26.0.0.9/full/helpers/build/configure.sh b/releases/26.0.0.9/full/helpers/build/configure.sh
index e7b38534..41d30dfb 100755
--- a/releases/26.0.0.9/full/helpers/build/configure.sh
+++ b/releases/26.0.0.9/full/helpers/build/configure.sh
@@ -18,6 +18,17 @@ function main() {
#Check for each Liberty value-add functionality
+ # Disable automatic configuration file monitoring (security hardening).
+ if [ "$SKIP_UPDATE_TRIGGER_DISABLED" != "true" ]; then
+ cp $SNIPPETS_SOURCE/update-trigger-disabled.xml $SNIPPETS_TARGET_DEFAULTS/update-trigger-disabled.xml
+ chmod g+rw $SNIPPETS_TARGET_DEFAULTS/update-trigger-disabled.xml
+ fi
+
+ # HTTP port is disabled by default. Set ENABLE_HTTP_PORT=true to re-enable port 9080.
+ if [ "$ENABLE_HTTP_PORT" != "true" ]; then
+ cp $SNIPPETS_SOURCE/http-port-disabled.xml $SNIPPETS_TARGET_DEFAULTS/http-port-disabled.xml
+ fi
+
# MicroProfile Health
if [ "$MP_HEALTH_CHECK" == "true" ]; then
cp $SNIPPETS_SOURCE/mp-health-check.xml $SNIPPETS_TARGET/mp-health-check.xml
diff --git a/releases/26.0.0.9/full/helpers/build/features.sh b/releases/26.0.0.9/full/helpers/build/features.sh
new file mode 100755
index 00000000..7595603e
--- /dev/null
+++ b/releases/26.0.0.9/full/helpers/build/features.sh
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+. /opt/ol/helpers/build/internal/logger.sh
+
+set -Eeo pipefail
+
+##Define variables for XML snippets source and target paths
+SNIPPETS_SOURCE=/opt/ol/helpers/build/configuration_snippets
+SNIPPETS_TARGET=/config/configDropins/overrides
+SNIPPETS_TARGET_DEFAULTS=/config/configDropins/defaults
+mkdir -p ${SNIPPETS_TARGET}
+mkdir -p ${SNIPPETS_TARGET_DEFAULTS}
+
+# Session Caching
+if [ -n "$INFINISPAN_SERVICE_NAME" ] || [ "${HZ_SESSION_CACHE}" == "client" ] || [ "${HZ_SESSION_CACHE}" == "embedded" ]; then
+ cp ${SNIPPETS_SOURCE}/sessioncache-features.xml ${SNIPPETS_TARGET}/sessioncache-features.xml
+ chmod g+rw $SNIPPETS_TARGET/sessioncache-features.xml
+fi
+
+# SSO
+if [[ -n "$SEC_SSO_PROVIDERS" ]]; then
+ cp $SNIPPETS_SOURCE/sso-features.xml $SNIPPETS_TARGET_DEFAULTS
+fi
+
+# Key Store
+if [ "$SSL" == "true" ] || [ "$TLS" == "true" ]; then
+ cp $SNIPPETS_SOURCE/tls.xml $SNIPPETS_TARGET/tls.xml
+fi
+# Install necessary features using featureUtility
+featureUtility installServerFeatures --acceptLicense defaultServer --noCache
+find /opt/ol/wlp/lib /opt/ol/wlp/bin ! -perm -g=rw -print0 | xargs -0 -r chmod g+rw
+
+# Validate the Liberty installation integrity after feature installation
+if [ "$SKIP_FEATURE_VALIDATE" != "true" ]; then
+ /opt/ol/wlp/bin/productInfo validate
+fi
+
+echo "features.sh script has been run" > /logs/features.log
+
diff --git a/releases/26.0.0.9/full/helpers/build/populate_scc.sh b/releases/26.0.0.9/full/helpers/build/populate_scc.sh
index 1012a07a..01e122d9 100755
--- a/releases/26.0.0.9/full/helpers/build/populate_scc.sh
+++ b/releases/26.0.0.9/full/helpers/build/populate_scc.sh
@@ -1,15 +1,28 @@
#!/bin/bash
. /opt/ol/helpers/build/internal/logger.sh
+# Use curl/wget to warm endpoints
+if command -v curl > /dev/null 2>&1; then
+ http_get() { curl --silent --output /dev/null --show-error --fail --max-time 5 --insecure "$1"; }
+else
+ http_get() { wget -q --no-check-certificate -O /dev/null -T 5 "$1"; }
+fi
+
set -Eeo pipefail
SCC_SIZE="80m" # Default size of the SCC layer.
ITERATIONS=2 # Number of iterations to run to populate it.
TRIM_SCC=yes # Trim the SCC to eliminate any wasted space.
WARM_ENDPOINT=true
-WARM_ENDPOINT_URL=localhost:9080/
WARM_OPENAPI_ENDPOINT=true
-WARM_OPENAPI_ENDPOINT_URL=localhost:9080/openapi
+
+# Default warm URLs based on ENABLE_HTTP_PORT, with HTTP_PORT/HTTPS_PORT overrides.
+if [ "$ENABLE_HTTP_PORT" == "true" ]; then
+ WARM_ENDPOINT_URL="http://localhost:${HTTP_PORT:-9080}/"
+else
+ WARM_ENDPOINT_URL="https://localhost:${HTTPS_PORT:-9443}/"
+fi
+WARM_OPENAPI_ENDPOINT_URL="${WARM_ENDPOINT_URL}openapi"
# If this directory exists and has at least ug=rwx permissions, assume the base image includes an SCC called 'openj9_system_scc' and build on it.
# If not, build on our own SCC.
@@ -81,10 +94,10 @@ do
-s Size of the SCC in megabytes (m suffix required). (Default: $SCC_SIZE)
-t Trim the SCC to eliminate most of the free space, if any.
-d Don't trim the SCC.
- -w Use curl to warm an endpoint during SCC creation. (Default: $WARM_ENDPOINT)
+ -w Use curl/wget to warm an endpoint during SCC creation. (Default: $WARM_ENDPOINT)
-c Do not warm an endpoint during SCC creation.
-u The URL endpoint to warm during SCC creation. (Default: $WARM_ENDPOINT_URL)
- -m Use curl to warm the openapi endpoint during SCC creation. (Default: $WARM_OPENAPI_ENDPOINT)
+ -m Use curl/wget to warm the openapi endpoint during SCC creation. (Default: $WARM_OPENAPI_ENDPOINT)
-l Do not warm the openapi endpoint during SCC creation.
-o The Open API URL endpoint to warm during SCC creation. (Default: $WARM_ENDPOINT_OPENAPI_URL)
@@ -117,11 +130,11 @@ then
if [ ${WARM_ENDPOINT} == true ]
then
- curl --silent --output /dev/null --show-error --fail --max-time 5 ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing"
+ http_get ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing"
fi
if [ ${WARM_OPENAPI_ENDPOINT} == true ]
then
- curl --silent --output /dev/null --show-error --fail --max-time 5 ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing"
+ http_get ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing"
fi
/opt/ol/wlp/bin/server stop
@@ -152,11 +165,11 @@ do
if [ ${WARM_ENDPOINT} == true ]
then
- curl --silent --output /dev/null --show-error --fail --max-time 5 ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing"
+ http_get ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing"
fi
if [ ${WARM_OPENAPI_ENDPOINT} == true ]
then
- curl --silent --output /dev/null --show-error --fail --max-time 5 ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing"
+ http_get ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing"
fi
/opt/ol/wlp/bin/server stop
diff --git a/releases/26.0.0.9/full/server-http-port-enabled.xml b/releases/26.0.0.9/full/server-http-port-enabled.xml
new file mode 100644
index 00000000..120800ea
--- /dev/null
+++ b/releases/26.0.0.9/full/server-http-port-enabled.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+ javaee-8.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/releases/26.0.0.9/full/server.xml b/releases/26.0.0.9/full/server.xml
index 120800ea..8b57a2bd 100644
--- a/releases/26.0.0.9/full/server.xml
+++ b/releases/26.0.0.9/full/server.xml
@@ -25,7 +25,7 @@
diff --git a/releases/26.0.0.9/kernel-slim/Dockerfile.ubi.ibmjava8 b/releases/26.0.0.9/kernel-slim/Dockerfile.ubi.ibmjava8
index 758d21c1..03adfa8b 100644
--- a/releases/26.0.0.9/kernel-slim/Dockerfile.ubi.ibmjava8
+++ b/releases/26.0.0.9/kernel-slim/Dockerfile.ubi.ibmjava8
@@ -99,7 +99,8 @@ ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
LOG_DIR=/liberty/logs \
WLP_OUTPUT_DIR=/opt/ol/wlp/output \
WLP_SKIP_MAXPERMSIZE=true \
- OPENJ9_SCC=$OPENJ9_SCC
+ OPENJ9_SCC=$OPENJ9_SCC \
+ ENABLE_HTTP_PORT=true
# Configure Open Liberty
RUN /opt/ol/wlp/bin/server create \
diff --git a/releases/26.0.0.9/kernel-slim/Dockerfile.ubi.openjdk11 b/releases/26.0.0.9/kernel-slim/Dockerfile.ubi.openjdk11
index d7edac51..7705049e 100644
--- a/releases/26.0.0.9/kernel-slim/Dockerfile.ubi.openjdk11
+++ b/releases/26.0.0.9/kernel-slim/Dockerfile.ubi.openjdk11
@@ -99,7 +99,8 @@ ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
LOG_DIR=/liberty/logs \
WLP_OUTPUT_DIR=/opt/ol/wlp/output \
WLP_SKIP_MAXPERMSIZE=true \
- OPENJ9_SCC=$OPENJ9_SCC
+ OPENJ9_SCC=$OPENJ9_SCC \
+ ENABLE_HTTP_PORT=true
# Configure Open Liberty
RUN /opt/ol/wlp/bin/server create \
diff --git a/releases/26.0.0.9/kernel-slim/Dockerfile.ubi.openjdk17 b/releases/26.0.0.9/kernel-slim/Dockerfile.ubi.openjdk17
index 5288e978..b5757284 100644
--- a/releases/26.0.0.9/kernel-slim/Dockerfile.ubi.openjdk17
+++ b/releases/26.0.0.9/kernel-slim/Dockerfile.ubi.openjdk17
@@ -99,7 +99,8 @@ ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
LOG_DIR=/liberty/logs \
WLP_OUTPUT_DIR=/opt/ol/wlp/output \
WLP_SKIP_MAXPERMSIZE=true \
- OPENJ9_SCC=$OPENJ9_SCC
+ OPENJ9_SCC=$OPENJ9_SCC \
+ ENABLE_HTTP_PORT=true
# Configure Open Liberty
RUN /opt/ol/wlp/bin/server create \
diff --git a/releases/26.0.0.9/kernel-slim/Dockerfile.ubi.openjdk8 b/releases/26.0.0.9/kernel-slim/Dockerfile.ubi.openjdk8
index 4d5e8cd3..171cfd6d 100644
--- a/releases/26.0.0.9/kernel-slim/Dockerfile.ubi.openjdk8
+++ b/releases/26.0.0.9/kernel-slim/Dockerfile.ubi.openjdk8
@@ -99,7 +99,8 @@ ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
LOG_DIR=/liberty/logs \
WLP_OUTPUT_DIR=/opt/ol/wlp/output \
WLP_SKIP_MAXPERMSIZE=true \
- OPENJ9_SCC=$OPENJ9_SCC
+ OPENJ9_SCC=$OPENJ9_SCC \
+ ENABLE_HTTP_PORT=true
# Configure Open Liberty
RUN /opt/ol/wlp/bin/server create \
diff --git a/releases/26.0.0.9/kernel-slim/Dockerfile.ubi10-micro.ibmjava8 b/releases/26.0.0.9/kernel-slim/Dockerfile.ubi10-micro.ibmjava8
new file mode 100644
index 00000000..930df335
--- /dev/null
+++ b/releases/26.0.0.9/kernel-slim/Dockerfile.ubi10-micro.ibmjava8
@@ -0,0 +1,177 @@
+# This relies on a base image which needs to be built seperately
+# curl https://raw.githubusercontent.com/ibmruntimes/ci.docker/main/ibmjava/8/jre/ubi-min/Dockerfile -o java/Dockerfile.ubi10.minimal
+# The above file needs editing before it is built:
+# This changes to a UBI10 base, and corrects the microdnf command to work on UBI10.
+# $> sed -i -e 's/ubi8/ubi10/' -e 's/microdnf install/microdnf -y install/' -e 's/microdnf update/microdnf update -y/' Dockerfile.ubi10-minimal.ibmjava8
+# $> rm ./java/Dockerfile.ubi10.minimal.bak
+# Then build and tag as 'ibmjava:10-ubi'
+# $> docker build -t ibmjava:10-ubi -f ./java/Dockerfile.ubi10.minimal java
+
+FROM ibmjava:10-ubi AS builder
+
+USER root
+
+ARG LIBERTY_VERSION=26.0.0.9
+ARG LIBERTY_SHA=4ec644ee059a8d54a26c326763fd404a6baf1570
+ARG LIBERTY_DOWNLOAD_URL=https://repo1.maven.org/maven2/io/openliberty/openliberty-kernel/$LIBERTY_VERSION/openliberty-kernel-$LIBERTY_VERSION.zip
+
+ARG VERBOSE=false
+
+# If there is a local copy of the image use that instead
+COPY resources/ /tmp/
+
+# Install Open Liberty
+RUN microdnf -y install shadow-utils wget unzip openssl \
+ && if [ ! -f /tmp/wlp.zip ]; then wget -q $LIBERTY_DOWNLOAD_URL -U UA-Open-Liberty-Docker -O /tmp/wlp.zip; fi \
+ && echo "$LIBERTY_SHA /tmp/wlp.zip" > /tmp/wlp.zip.sha1 \
+ && sha1sum -c /tmp/wlp.zip.sha1 \
+ && chmod -R u+x /usr/bin \
+ && unzip -q /tmp/wlp.zip -d /opt/ol \
+ && mkdir -p /licenses \
+ && cp /opt/ol/wlp/LICENSE /licenses/ \
+# && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \
+ && chown -R 1001:0 /opt/ol/wlp \
+ && chmod -R g+rw /opt/ol/wlp
+
+# Install dumb-init
+RUN set -eux; \
+ ARCH="$(uname -m)"; \
+ case "${ARCH}" in \
+ aarch64|arm64) \
+ DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_aarch64'; \
+ DUMB_INIT_SHA256=b7d648f97154a99c539b63c55979cd29f005f88430fb383007fe3458340b795e; \
+ ;; \
+ amd64|x86_64) \
+ DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_x86_64'; \
+ DUMB_INIT_SHA256=e874b55f3279ca41415d290c512a7ba9d08f98041b28ae7c2acb19a545f1c4df; \
+ ;; \
+ ppc64el|ppc64le) \
+ DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_ppc64le'; \
+ DUMB_INIT_SHA256=3d15e80e29f0f4fa1fc686b00613a2220bc37e83a35283d4b4cca1fbd0a5609f; \
+ ;; \
+ s390x) \
+ DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_s390x'; \
+ DUMB_INIT_SHA256=47e4601b152fc6dcb1891e66c30ecc62a2939fd7ffd1515a7c30f281cfec53b7; \
+ ;;\
+ *) \
+ echo "Unsupported arch: ${ARCH}"; \
+ exit 1; \
+ ;; \
+ esac; \
+ curl -LfsSo /usr/bin/dumb-init ${DUMB_INIT_URL}; \
+ echo "${DUMB_INIT_SHA256} */usr/bin/dumb-init" | sha256sum -c -; \
+ chmod +x /usr/bin/dumb-init;
+
+FROM icr.io/appcafe/ibmjava:8-jre-ubi10-micro
+
+USER root
+
+ARG LIBERTY_VERSION=26.0.0.9
+ARG LIBERTY_BUILD_LABEL=cl260920260824-0859
+
+ARG OPENJ9_SCC=true
+ARG VERBOSE=false
+
+LABEL org.opencontainers.image.authors="Leo Christy Jesuraj, Iain Lewis, Melissa Lee, Kirby Chin" \
+ org.opencontainers.image.vendor="Open Liberty" \
+ org.opencontainers.image.url="https://openliberty.io/" \
+ org.opencontainers.image.source="https://github.com/OpenLiberty/ci.docker" \
+ org.opencontainers.image.version="$LIBERTY_VERSION" \
+ org.opencontainers.image.revision="$LIBERTY_BUILD_LABEL" \
+ liberty.version="$LIBERTY_VERSION" \
+ io.openliberty.version="$LIBERTY_VERSION" \
+ vendor="Open Liberty" \
+ name="Open Liberty" \
+ version="$LIBERTY_VERSION" \
+ summary="Image for Open Liberty with IBM's Java and UBI 10 micro" \
+ description="This image contains the Open Liberty runtime with IBM's Java and Red Hat UBI 10 micro as the base OS. For more information on this image please see https://github.com/OpenLiberty/ci.docker#building-an-application-image"
+
+COPY NOTICES /opt/ol/NOTICES
+COPY helpers /opt/ol/helpers
+COPY fixes/ /opt/ol/fixes/
+
+# Add default user 1001 and create wlp with right user/permissions before copying
+RUN echo "1001:x:1001:0::/home/1001:/sbin/nologin" >> /etc/passwd \
+ && mkdir -p /home/1001 \
+ && chown 1001:0 /home/1001 \
+ && mkdir -p /opt/ol/wlp \
+ && chown -R 1001:0 /opt/ol/wlp \
+ && chmod -R g+rw /opt/ol/wlp
+
+COPY --from=builder /usr/bin/dumb-init /usr/bin/dumb-init
+COPY --from=builder /usr/bin/awk /usr/bin/awk
+COPY --from=builder /usr/bin/wget /usr/bin/wget
+
+COPY --from=builder /usr/lib64/libpsl.so* /usr/lib64/
+COPY --from=builder /usr/lib64/libmpfr.so* /usr/lib64/
+COPY --from=builder /usr/lib64/libreadline.so* /usr/lib64/
+COPY --from=builder /usr/lib64/libgnutls.so* /usr/lib64/
+COPY --from=builder /usr/lib64/libidn2.so* /usr/lib64/
+COPY --from=builder /usr/lib64/libunistring.so* /usr/lib64/
+COPY --from=builder /usr/lib64/libuuid.so* /usr/lib64/
+
+# Copy the runtime and licenses
+COPY --from=builder --chown=1001:0 /opt/ol/wlp /opt/ol/wlp
+COPY --from=builder /licenses /licenses
+
+# Set Path Shortcuts
+ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
+ LOG_DIR=/liberty/logs \
+ WLP_OUTPUT_DIR=/opt/ol/wlp/output \
+ WLP_SKIP_MAXPERMSIZE=true \
+ OPENJ9_SCC=$OPENJ9_SCC
+
+# Configure Open Liberty
+RUN /opt/ol/wlp/bin/server create \
+ && rm -rf $WLP_OUTPUT_DIR/.classCache /output/workarea \
+ && rm -rf /opt/ol/wlp/usr/servers/defaultServer/server.env
+
+# Create symlinks && set permissions for non-root user
+RUN mkdir /logs \
+ && chown -R 1001:0 /logs \
+ && chmod -R g+rw /logs \
+ && mkdir -p /opt/ol/wlp/usr/shared/resources/lib.index.cache \
+ && ln -s /opt/ol/wlp/usr/shared/resources/lib.index.cache /lib.index.cache \
+ && mkdir -p $WLP_OUTPUT_DIR/defaultServer \
+ && ln -s $WLP_OUTPUT_DIR/defaultServer /output \
+ && ln -s /opt/ol/wlp/usr/servers/defaultServer /config \
+ && mkdir -p /config/configDropins/defaults \
+ && mkdir -p /config/configDropins/overrides \
+ && ln -s /opt/ol/wlp /liberty \
+ && ln -s /opt/ol/fixes /fixes \
+ && echo "" > /config/configDropins/defaults/open-default-port.xml \
+ && chown -R 1001:0 /config \
+ && chmod -R g+rw /config \
+ && chown -R 1001:0 /opt/ol/wlp/usr \
+ && chmod -R g+rw /opt/ol/wlp/usr \
+ && chown -R 1001:0 /opt/ol/wlp/output \
+ && chmod -R g+rw /opt/ol/wlp/output \
+ && chown -R 1001:0 /opt/ol/helpers \
+ && chmod -R ug+rwx /opt/ol/helpers \
+ && chown -R 1001:0 /opt/ol/fixes \
+ && chmod -R g+rwx /opt/ol/fixes \
+ && mkdir /etc/wlp \
+ && chown -R 1001:0 /etc/wlp \
+ && chmod -R g+rw /etc/wlp \
+ && ln -s /logs /liberty/logs \
+ && mkdir /serviceability \
+ && chown -R 1001:0 /serviceability \
+ && chmod -R g+rw /serviceability
+
+# Create a new SCC layer
+RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \
+ && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache /output/workarea \
+ && chown -R 1001:0 /opt/ol/wlp/output \
+ && chmod -R g+rwx /opt/ol/wlp/output
+
+#These settings are needed so that we can run as a different user than 1001 after server warmup
+ENV RANDFILE=/tmp/.rnd \
+ IBM_JAVA_OPTIONS="-Xshareclasses:name=liberty,readonly,nonfatal,cacheDir=/output/.classCache/ -Dosgi.checkConfiguration=false ${IBM_JAVA_OPTIONS}"
+
+USER 1001
+
+EXPOSE 9443
+
+ENTRYPOINT ["/opt/ol/helpers/runtime/docker-server.sh"]
+CMD ["/opt/ol/wlp/bin/server", "run", "defaultServer"]
+
diff --git a/releases/26.0.0.9/kernel-slim/Dockerfile.ubi10-micro.openjdk11 b/releases/26.0.0.9/kernel-slim/Dockerfile.ubi10-micro.openjdk11
new file mode 100755
index 00000000..71bdb7c0
--- /dev/null
+++ b/releases/26.0.0.9/kernel-slim/Dockerfile.ubi10-micro.openjdk11
@@ -0,0 +1,164 @@
+FROM registry.access.redhat.com/ubi10/ubi-minimal:latest AS builder
+
+USER root
+
+ARG LIBERTY_VERSION=26.0.0.9
+ARG LIBERTY_SHA=4ec644ee059a8d54a26c326763fd404a6baf1570
+ARG LIBERTY_DOWNLOAD_URL=https://repo1.maven.org/maven2/io/openliberty/openliberty-kernel/$LIBERTY_VERSION/openliberty-kernel-$LIBERTY_VERSION.zip
+
+ARG VERBOSE=false
+
+# If there is a local copy of the image use that instead
+COPY resources/ /tmp/
+
+# Install Open Liberty
+RUN microdnf -y install shadow-utils wget unzip openssl \
+ && if [ ! -f /tmp/wlp.zip ]; then wget -q $LIBERTY_DOWNLOAD_URL -U UA-Open-Liberty-Docker -O /tmp/wlp.zip; fi \
+ && echo "$LIBERTY_SHA /tmp/wlp.zip" > /tmp/wlp.zip.sha1 \
+ && sha1sum -c /tmp/wlp.zip.sha1 \
+ && chmod -R u+x /usr/bin \
+ && unzip -q /tmp/wlp.zip -d /opt/ol \
+ && mkdir -p /licenses \
+ && cp /opt/ol/wlp/LICENSE /licenses/ \
+ && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \
+ && chown -R 1001:0 /opt/ol/wlp \
+ && chmod -R g+rw /opt/ol/wlp
+
+# Install dumb-init
+RUN set -eux; \
+ ARCH="$(uname -m)"; \
+ case "${ARCH}" in \
+ aarch64|arm64) \
+ DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_aarch64'; \
+ DUMB_INIT_SHA256=b7d648f97154a99c539b63c55979cd29f005f88430fb383007fe3458340b795e; \
+ ;; \
+ amd64|x86_64) \
+ DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_x86_64'; \
+ DUMB_INIT_SHA256=e874b55f3279ca41415d290c512a7ba9d08f98041b28ae7c2acb19a545f1c4df; \
+ ;; \
+ ppc64el|ppc64le) \
+ DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_ppc64le'; \
+ DUMB_INIT_SHA256=3d15e80e29f0f4fa1fc686b00613a2220bc37e83a35283d4b4cca1fbd0a5609f; \
+ ;; \
+ s390x) \
+ DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_s390x'; \
+ DUMB_INIT_SHA256=47e4601b152fc6dcb1891e66c30ecc62a2939fd7ffd1515a7c30f281cfec53b7; \
+ ;;\
+ *) \
+ echo "Unsupported arch: ${ARCH}"; \
+ exit 1; \
+ ;; \
+ esac; \
+ curl -LfsSo /usr/bin/dumb-init ${DUMB_INIT_URL}; \
+ echo "${DUMB_INIT_SHA256} */usr/bin/dumb-init" | sha256sum -c -; \
+ chmod +x /usr/bin/dumb-init;
+
+FROM icr.io/appcafe/ibm-semeru-runtimes:open-11-jre-ubi10-micro
+
+USER root
+
+ARG LIBERTY_VERSION=26.0.0.9
+ARG LIBERTY_BUILD_LABEL=cl260920260824-0859
+
+ARG OPENJ9_SCC=true
+ARG VERBOSE=false
+
+LABEL org.opencontainers.image.authors="Leo Christy Jesuraj, Iain Lewis, Melissa Lee, Kirby Chin" \
+ org.opencontainers.image.vendor="Open Liberty" \
+ org.opencontainers.image.url="https://openliberty.io/" \
+ org.opencontainers.image.source="https://github.com/OpenLiberty/ci.docker" \
+ org.opencontainers.image.version="$LIBERTY_VERSION" \
+ org.opencontainers.image.revision="$LIBERTY_BUILD_LABEL" \
+ liberty.version="$LIBERTY_VERSION" \
+ io.openliberty.version="$LIBERTY_VERSION" \
+ vendor="Open Liberty" \
+ name="Open Liberty" \
+ version="$LIBERTY_VERSION" \
+ summary="Image for Open Liberty with IBM Semeru Runtime Open Edition OpenJDK 11 with OpenJ9 and UBI 10 micro" \
+ description="This image contains the Open Liberty runtime with IBM Semeru Runtime Open Edition OpenJDK 11 with OpenJ9 and Red Hat UBI 10 micro as the base OS. For more information on this image please see https://github.com/OpenLiberty/ci.docker#building-an-application-image"
+
+COPY NOTICES /opt/ol/NOTICES
+COPY helpers /opt/ol/helpers
+COPY fixes/ /opt/ol/fixes/
+
+# Add default user 1001 and create wlp with right user/permissions before copying
+RUN echo "1001:x:1001:0::/home/1001:/sbin/nologin" >> /etc/passwd \
+ && mkdir -p /home/1001 \
+ && chown 1001:0 /home/1001 \
+ && mkdir -p /opt/ol/wlp \
+ && chown -R 1001:0 /opt/ol/wlp \
+ && chmod -R g+rw /opt/ol/wlp
+
+COPY --from=builder /usr/bin/dumb-init /usr/bin/dumb-init
+COPY --from=builder /usr/bin/awk /usr/bin/awk
+COPY --from=builder /usr/bin/wget /usr/bin/wget
+
+COPY --from=builder /usr/lib64/libpsl.so* /usr/lib64/
+COPY --from=builder /usr/lib64/libmpfr.so* /usr/lib64/
+
+# Copy the runtime and licenses
+COPY --from=builder --chown=1001:0 /opt/ol/wlp /opt/ol/wlp
+COPY --from=builder /licenses /licenses
+
+# Set Path Shortcuts
+ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
+ LOG_DIR=/liberty/logs \
+ WLP_OUTPUT_DIR=/opt/ol/wlp/output \
+ WLP_SKIP_MAXPERMSIZE=true \
+ OPENJ9_SCC=$OPENJ9_SCC
+
+# Configure Open Liberty
+RUN /opt/ol/wlp/bin/server create \
+ && rm -rf $WLP_OUTPUT_DIR/.classCache /output/workarea \
+ && rm -rf /opt/ol/wlp/usr/servers/defaultServer/server.env
+
+# Create symlinks && set permissions for non-root user
+RUN mkdir /logs \
+ && chown -R 1001:0 /logs \
+ && chmod -R g+rw /logs \
+ && mkdir -p /opt/ol/wlp/usr/shared/resources/lib.index.cache \
+ && ln -s /opt/ol/wlp/usr/shared/resources/lib.index.cache /lib.index.cache \
+ && mkdir -p $WLP_OUTPUT_DIR/defaultServer \
+ && ln -s $WLP_OUTPUT_DIR/defaultServer /output \
+ && ln -s /opt/ol/wlp/usr/servers/defaultServer /config \
+ && mkdir -p /config/configDropins/defaults \
+ && mkdir -p /config/configDropins/overrides \
+ && ln -s /opt/ol/wlp /liberty \
+ && ln -s /opt/ol/fixes /fixes \
+ && echo "" > /config/configDropins/defaults/open-default-port.xml \
+ && chown -R 1001:0 /config \
+ && chmod -R g+rw /config \
+ && chown -R 1001:0 /opt/ol/wlp/usr \
+ && chmod -R g+rw /opt/ol/wlp/usr \
+ && chown -R 1001:0 /opt/ol/wlp/output \
+ && chmod -R g+rw /opt/ol/wlp/output \
+ && chown -R 1001:0 /opt/ol/helpers \
+ && chmod -R ug+rwx /opt/ol/helpers \
+ && chown -R 1001:0 /opt/ol/fixes \
+ && chmod -R g+rwx /opt/ol/fixes \
+ && mkdir /etc/wlp \
+ && chown -R 1001:0 /etc/wlp \
+ && chmod -R g+rw /etc/wlp \
+ && if [ -e /etc/instanton.ld.so.cache ]; then chmod g+w /etc/ld.so.cache; fi \
+ && ln -s /logs /liberty/logs \
+ && mkdir /serviceability \
+ && chown -R 1001:0 /serviceability \
+ && chmod -R g+rw /serviceability
+
+# Create a new SCC layer
+RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \
+ && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache /output/workarea \
+ && chown -R 1001:0 /opt/ol/wlp/output \
+ && chmod -R g+rwx /opt/ol/wlp/output
+
+#These settings are needed so that we can run as a different user than 1001 after server warmup
+ENV RANDFILE=/tmp/.rnd \
+ OPENJ9_JAVA_OPTIONS="-XX:+IgnoreUnrecognizedVMOptions -XX:+IdleTuningGcOnIdle -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,readonly,nonFatal -Dosgi.checkConfiguration=false"
+
+USER 1001
+
+EXPOSE 9443
+
+ENTRYPOINT ["/opt/ol/helpers/runtime/docker-server.sh"]
+CMD ["/opt/ol/wlp/bin/server", "run", "defaultServer"]
+
diff --git a/releases/26.0.0.9/kernel-slim/Dockerfile.ubi10-micro.openjdk17 b/releases/26.0.0.9/kernel-slim/Dockerfile.ubi10-micro.openjdk17
new file mode 100755
index 00000000..bcba2940
--- /dev/null
+++ b/releases/26.0.0.9/kernel-slim/Dockerfile.ubi10-micro.openjdk17
@@ -0,0 +1,164 @@
+FROM registry.access.redhat.com/ubi10/ubi-minimal:latest AS builder
+
+USER root
+
+ARG LIBERTY_VERSION=26.0.0.9
+ARG LIBERTY_SHA=4ec644ee059a8d54a26c326763fd404a6baf1570
+ARG LIBERTY_DOWNLOAD_URL=https://repo1.maven.org/maven2/io/openliberty/openliberty-kernel/$LIBERTY_VERSION/openliberty-kernel-$LIBERTY_VERSION.zip
+
+ARG VERBOSE=false
+
+# If there is a local copy of the image use that instead
+COPY resources/ /tmp/
+
+# Install Open Liberty
+RUN microdnf -y install shadow-utils wget unzip openssl \
+ && if [ ! -f /tmp/wlp.zip ]; then wget -q $LIBERTY_DOWNLOAD_URL -U UA-Open-Liberty-Docker -O /tmp/wlp.zip; fi \
+ && echo "$LIBERTY_SHA /tmp/wlp.zip" > /tmp/wlp.zip.sha1 \
+ && sha1sum -c /tmp/wlp.zip.sha1 \
+ && chmod -R u+x /usr/bin \
+ && unzip -q /tmp/wlp.zip -d /opt/ol \
+ && mkdir -p /licenses \
+ && cp /opt/ol/wlp/LICENSE /licenses/ \
+ && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \
+ && chown -R 1001:0 /opt/ol/wlp \
+ && chmod -R g+rw /opt/ol/wlp
+
+# Install dumb-init
+RUN set -eux; \
+ ARCH="$(uname -m)"; \
+ case "${ARCH}" in \
+ aarch64|arm64) \
+ DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_aarch64'; \
+ DUMB_INIT_SHA256=b7d648f97154a99c539b63c55979cd29f005f88430fb383007fe3458340b795e; \
+ ;; \
+ amd64|x86_64) \
+ DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_x86_64'; \
+ DUMB_INIT_SHA256=e874b55f3279ca41415d290c512a7ba9d08f98041b28ae7c2acb19a545f1c4df; \
+ ;; \
+ ppc64el|ppc64le) \
+ DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_ppc64le'; \
+ DUMB_INIT_SHA256=3d15e80e29f0f4fa1fc686b00613a2220bc37e83a35283d4b4cca1fbd0a5609f; \
+ ;; \
+ s390x) \
+ DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_s390x'; \
+ DUMB_INIT_SHA256=47e4601b152fc6dcb1891e66c30ecc62a2939fd7ffd1515a7c30f281cfec53b7; \
+ ;;\
+ *) \
+ echo "Unsupported arch: ${ARCH}"; \
+ exit 1; \
+ ;; \
+ esac; \
+ curl -LfsSo /usr/bin/dumb-init ${DUMB_INIT_URL}; \
+ echo "${DUMB_INIT_SHA256} */usr/bin/dumb-init" | sha256sum -c -; \
+ chmod +x /usr/bin/dumb-init;
+
+FROM icr.io/appcafe/ibm-semeru-runtimes:open-17-jre-ubi10-micro
+
+USER root
+
+ARG LIBERTY_VERSION=26.0.0.9
+ARG LIBERTY_BUILD_LABEL=cl260920260824-0859
+
+ARG OPENJ9_SCC=true
+ARG VERBOSE=false
+
+LABEL org.opencontainers.image.authors="Leo Christy Jesuraj, Iain Lewis, Melissa Lee, Kirby Chin" \
+ org.opencontainers.image.vendor="Open Liberty" \
+ org.opencontainers.image.url="https://openliberty.io/" \
+ org.opencontainers.image.source="https://github.com/OpenLiberty/ci.docker" \
+ org.opencontainers.image.version="$LIBERTY_VERSION" \
+ org.opencontainers.image.revision="$LIBERTY_BUILD_LABEL" \
+ liberty.version="$LIBERTY_VERSION" \
+ io.openliberty.version="$LIBERTY_VERSION" \
+ vendor="Open Liberty" \
+ name="Open Liberty" \
+ version="$LIBERTY_VERSION" \
+ summary="Image for Open Liberty with IBM Semeru Runtime Open Edition OpenJDK 17 with OpenJ9 and UBI 10 micro" \
+ description="This image contains the Open Liberty runtime with IBM Semeru Runtime Open Edition OpenJDK 17 with OpenJ9 and Red Hat UBI 10 micro as the base OS. For more information on this image please see https://github.com/OpenLiberty/ci.docker#building-an-application-image"
+
+COPY NOTICES /opt/ol/NOTICES
+COPY helpers /opt/ol/helpers
+COPY fixes/ /opt/ol/fixes/
+
+# Add default user 1001 and create wlp with right user/permissions before copying
+RUN echo "1001:x:1001:0::/home/1001:/sbin/nologin" >> /etc/passwd \
+ && mkdir -p /home/1001 \
+ && chown 1001:0 /home/1001 \
+ && mkdir -p /opt/ol/wlp \
+ && chown -R 1001:0 /opt/ol/wlp \
+ && chmod -R g+rw /opt/ol/wlp
+
+COPY --from=builder /usr/bin/dumb-init /usr/bin/dumb-init
+COPY --from=builder /usr/bin/awk /usr/bin/awk
+COPY --from=builder /usr/bin/wget /usr/bin/wget
+
+COPY --from=builder /usr/lib64/libpsl.so* /usr/lib64/
+COPY --from=builder /usr/lib64/libmpfr.so* /usr/lib64/
+
+# Copy the runtime and licenses
+COPY --from=builder --chown=1001:0 /opt/ol/wlp /opt/ol/wlp
+COPY --from=builder /licenses /licenses
+
+# Set Path Shortcuts
+ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
+ LOG_DIR=/liberty/logs \
+ WLP_OUTPUT_DIR=/opt/ol/wlp/output \
+ WLP_SKIP_MAXPERMSIZE=true \
+ OPENJ9_SCC=$OPENJ9_SCC
+
+# Configure Open Liberty
+RUN /opt/ol/wlp/bin/server create \
+ && rm -rf $WLP_OUTPUT_DIR/.classCache /output/workarea \
+ && rm -rf /opt/ol/wlp/usr/servers/defaultServer/server.env
+
+# Create symlinks && set permissions for non-root user
+RUN mkdir /logs \
+ && chown -R 1001:0 /logs \
+ && chmod -R g+rw /logs \
+ && mkdir -p /opt/ol/wlp/usr/shared/resources/lib.index.cache \
+ && ln -s /opt/ol/wlp/usr/shared/resources/lib.index.cache /lib.index.cache \
+ && mkdir -p $WLP_OUTPUT_DIR/defaultServer \
+ && ln -s $WLP_OUTPUT_DIR/defaultServer /output \
+ && ln -s /opt/ol/wlp/usr/servers/defaultServer /config \
+ && mkdir -p /config/configDropins/defaults \
+ && mkdir -p /config/configDropins/overrides \
+ && ln -s /opt/ol/wlp /liberty \
+ && ln -s /opt/ol/fixes /fixes \
+ && echo "" > /config/configDropins/defaults/open-default-port.xml \
+ && chown -R 1001:0 /config \
+ && chmod -R g+rw /config \
+ && chown -R 1001:0 /opt/ol/wlp/usr \
+ && chmod -R g+rw /opt/ol/wlp/usr \
+ && chown -R 1001:0 /opt/ol/wlp/output \
+ && chmod -R g+rw /opt/ol/wlp/output \
+ && chown -R 1001:0 /opt/ol/helpers \
+ && chmod -R ug+rwx /opt/ol/helpers \
+ && chown -R 1001:0 /opt/ol/fixes \
+ && chmod -R g+rwx /opt/ol/fixes \
+ && mkdir /etc/wlp \
+ && chown -R 1001:0 /etc/wlp \
+ && chmod -R g+rw /etc/wlp \
+ && if [ -e /etc/instanton.ld.so.cache ]; then chmod g+w /etc/ld.so.cache; fi \
+ && ln -s /logs /liberty/logs \
+ && mkdir /serviceability \
+ && chown -R 1001:0 /serviceability \
+ && chmod -R g+rw /serviceability
+
+# Create a new SCC layer
+RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \
+ && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache /output/workarea \
+ && chown -R 1001:0 /opt/ol/wlp/output \
+ && chmod -R g+rwx /opt/ol/wlp/output
+
+#These settings are needed so that we can run as a different user than 1001 after server warmup
+ENV RANDFILE=/tmp/.rnd \
+ OPENJ9_JAVA_OPTIONS="-XX:+IgnoreUnrecognizedVMOptions -XX:+IdleTuningGcOnIdle -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,readonly,nonFatal -Dosgi.checkConfiguration=false"
+
+USER 1001
+
+EXPOSE 9443
+
+ENTRYPOINT ["/opt/ol/helpers/runtime/docker-server.sh"]
+CMD ["/opt/ol/wlp/bin/server", "run", "defaultServer"]
+
diff --git a/releases/26.0.0.9/kernel-slim/Dockerfile.ubi10-micro.openjdk21 b/releases/26.0.0.9/kernel-slim/Dockerfile.ubi10-micro.openjdk21
new file mode 100755
index 00000000..efb56b82
--- /dev/null
+++ b/releases/26.0.0.9/kernel-slim/Dockerfile.ubi10-micro.openjdk21
@@ -0,0 +1,164 @@
+FROM registry.access.redhat.com/ubi10/ubi-minimal:latest AS builder
+
+USER root
+
+ARG LIBERTY_VERSION=26.0.0.9
+ARG LIBERTY_SHA=4ec644ee059a8d54a26c326763fd404a6baf1570
+ARG LIBERTY_DOWNLOAD_URL=https://repo1.maven.org/maven2/io/openliberty/openliberty-kernel/$LIBERTY_VERSION/openliberty-kernel-$LIBERTY_VERSION.zip
+
+ARG VERBOSE=false
+
+# If there is a local copy of the image use that instead
+COPY resources/ /tmp/
+
+# Install Open Liberty
+RUN microdnf -y install shadow-utils wget unzip openssl \
+ && if [ ! -f /tmp/wlp.zip ]; then wget -q $LIBERTY_DOWNLOAD_URL -U UA-Open-Liberty-Docker -O /tmp/wlp.zip; fi \
+ && echo "$LIBERTY_SHA /tmp/wlp.zip" > /tmp/wlp.zip.sha1 \
+ && sha1sum -c /tmp/wlp.zip.sha1 \
+ && chmod -R u+x /usr/bin \
+ && unzip -q /tmp/wlp.zip -d /opt/ol \
+ && mkdir -p /licenses \
+ && cp /opt/ol/wlp/LICENSE /licenses/ \
+ && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \
+ && chown -R 1001:0 /opt/ol/wlp \
+ && chmod -R g+rw /opt/ol/wlp
+
+# Install dumb-init
+RUN set -eux; \
+ ARCH="$(uname -m)"; \
+ case "${ARCH}" in \
+ aarch64|arm64) \
+ DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_aarch64'; \
+ DUMB_INIT_SHA256=b7d648f97154a99c539b63c55979cd29f005f88430fb383007fe3458340b795e; \
+ ;; \
+ amd64|x86_64) \
+ DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_x86_64'; \
+ DUMB_INIT_SHA256=e874b55f3279ca41415d290c512a7ba9d08f98041b28ae7c2acb19a545f1c4df; \
+ ;; \
+ ppc64el|ppc64le) \
+ DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_ppc64le'; \
+ DUMB_INIT_SHA256=3d15e80e29f0f4fa1fc686b00613a2220bc37e83a35283d4b4cca1fbd0a5609f; \
+ ;; \
+ s390x) \
+ DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_s390x'; \
+ DUMB_INIT_SHA256=47e4601b152fc6dcb1891e66c30ecc62a2939fd7ffd1515a7c30f281cfec53b7; \
+ ;;\
+ *) \
+ echo "Unsupported arch: ${ARCH}"; \
+ exit 1; \
+ ;; \
+ esac; \
+ curl -LfsSo /usr/bin/dumb-init ${DUMB_INIT_URL}; \
+ echo "${DUMB_INIT_SHA256} */usr/bin/dumb-init" | sha256sum -c -; \
+ chmod +x /usr/bin/dumb-init;
+
+FROM icr.io/appcafe/ibm-semeru-runtimes:open-21-jre-ubi10-micro
+
+USER root
+
+ARG LIBERTY_VERSION=26.0.0.9
+ARG LIBERTY_BUILD_LABEL=cl260920260824-0859
+
+ARG OPENJ9_SCC=true
+ARG VERBOSE=false
+
+LABEL org.opencontainers.image.authors="Leo Christy Jesuraj, Iain Lewis, Melissa Lee, Kirby Chin" \
+ org.opencontainers.image.vendor="Open Liberty" \
+ org.opencontainers.image.url="https://openliberty.io/" \
+ org.opencontainers.image.source="https://github.com/OpenLiberty/ci.docker" \
+ org.opencontainers.image.version="$LIBERTY_VERSION" \
+ org.opencontainers.image.revision="$LIBERTY_BUILD_LABEL" \
+ liberty.version="$LIBERTY_VERSION" \
+ io.openliberty.version="$LIBERTY_VERSION" \
+ vendor="Open Liberty" \
+ name="Open Liberty" \
+ version="$LIBERTY_VERSION" \
+ summary="Image for Open Liberty with IBM Semeru Runtime Open Edition OpenJDK 21 with OpenJ9 and UBI 10 micro" \
+ description="This image contains the Open Liberty runtime with IBM Semeru Runtime Open Edition OpenJDK 21 with OpenJ9 and Red Hat UBI 10 micro as the base OS. For more information on this image please see https://github.com/OpenLiberty/ci.docker#building-an-application-image"
+
+COPY NOTICES /opt/ol/NOTICES
+COPY helpers /opt/ol/helpers
+COPY fixes/ /opt/ol/fixes/
+
+# Add default user 1001 and create wlp with right user/permissions before copying
+RUN echo "1001:x:1001:0::/home/1001:/sbin/nologin" >> /etc/passwd \
+ && mkdir -p /home/1001 \
+ && chown 1001:0 /home/1001 \
+ && mkdir -p /opt/ol/wlp \
+ && chown -R 1001:0 /opt/ol/wlp \
+ && chmod -R g+rw /opt/ol/wlp
+
+COPY --from=builder /usr/bin/dumb-init /usr/bin/dumb-init
+COPY --from=builder /usr/bin/awk /usr/bin/awk
+COPY --from=builder /usr/bin/wget /usr/bin/wget
+
+COPY --from=builder /usr/lib64/libpsl.so* /usr/lib64/
+COPY --from=builder /usr/lib64/libmpfr.so* /usr/lib64/
+
+# Copy the runtime and licenses
+COPY --from=builder --chown=1001:0 /opt/ol/wlp /opt/ol/wlp
+COPY --from=builder /licenses /licenses
+
+# Set Path Shortcuts
+ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
+ LOG_DIR=/liberty/logs \
+ WLP_OUTPUT_DIR=/opt/ol/wlp/output \
+ WLP_SKIP_MAXPERMSIZE=true \
+ OPENJ9_SCC=$OPENJ9_SCC
+
+# Configure Open Liberty
+RUN /opt/ol/wlp/bin/server create \
+ && rm -rf $WLP_OUTPUT_DIR/.classCache /output/workarea \
+ && rm -rf /opt/ol/wlp/usr/servers/defaultServer/server.env
+
+# Create symlinks && set permissions for non-root user
+RUN mkdir /logs \
+ && chown -R 1001:0 /logs \
+ && chmod -R g+rw /logs \
+ && mkdir -p /opt/ol/wlp/usr/shared/resources/lib.index.cache \
+ && ln -s /opt/ol/wlp/usr/shared/resources/lib.index.cache /lib.index.cache \
+ && mkdir -p $WLP_OUTPUT_DIR/defaultServer \
+ && ln -s $WLP_OUTPUT_DIR/defaultServer /output \
+ && ln -s /opt/ol/wlp/usr/servers/defaultServer /config \
+ && mkdir -p /config/configDropins/defaults \
+ && mkdir -p /config/configDropins/overrides \
+ && ln -s /opt/ol/wlp /liberty \
+ && ln -s /opt/ol/fixes /fixes \
+ && echo "" > /config/configDropins/defaults/open-default-port.xml \
+ && chown -R 1001:0 /config \
+ && chmod -R g+rw /config \
+ && chown -R 1001:0 /opt/ol/wlp/usr \
+ && chmod -R g+rw /opt/ol/wlp/usr \
+ && chown -R 1001:0 /opt/ol/wlp/output \
+ && chmod -R g+rw /opt/ol/wlp/output \
+ && chown -R 1001:0 /opt/ol/helpers \
+ && chmod -R ug+rwx /opt/ol/helpers \
+ && chown -R 1001:0 /opt/ol/fixes \
+ && chmod -R g+rwx /opt/ol/fixes \
+ && mkdir /etc/wlp \
+ && chown -R 1001:0 /etc/wlp \
+ && chmod -R g+rw /etc/wlp \
+ && if [ -e /etc/instanton.ld.so.cache ]; then chmod g+w /etc/ld.so.cache; fi \
+ && ln -s /logs /liberty/logs \
+ && mkdir /serviceability \
+ && chown -R 1001:0 /serviceability \
+ && chmod -R g+rw /serviceability
+
+# Create a new SCC layer
+RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \
+ && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache /output/workarea \
+ && chown -R 1001:0 /opt/ol/wlp/output \
+ && chmod -R g+rwx /opt/ol/wlp/output
+
+#These settings are needed so that we can run as a different user than 1001 after server warmup
+ENV RANDFILE=/tmp/.rnd \
+ OPENJ9_JAVA_OPTIONS="-XX:+IgnoreUnrecognizedVMOptions -XX:+IdleTuningGcOnIdle -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,readonly,nonFatal -Dosgi.checkConfiguration=false"
+
+USER 1001
+
+EXPOSE 9443
+
+ENTRYPOINT ["/opt/ol/helpers/runtime/docker-server.sh"]
+CMD ["/opt/ol/wlp/bin/server", "run", "defaultServer"]
+
diff --git a/releases/26.0.0.9/kernel-slim/Dockerfile.ubi10-micro.openjdk25 b/releases/26.0.0.9/kernel-slim/Dockerfile.ubi10-micro.openjdk25
new file mode 100755
index 00000000..3ceeebcd
--- /dev/null
+++ b/releases/26.0.0.9/kernel-slim/Dockerfile.ubi10-micro.openjdk25
@@ -0,0 +1,164 @@
+FROM registry.access.redhat.com/ubi10/ubi-minimal:latest AS builder
+
+USER root
+
+ARG LIBERTY_VERSION=26.0.0.9
+ARG LIBERTY_SHA=4ec644ee059a8d54a26c326763fd404a6baf1570
+ARG LIBERTY_DOWNLOAD_URL=https://repo1.maven.org/maven2/io/openliberty/openliberty-kernel/$LIBERTY_VERSION/openliberty-kernel-$LIBERTY_VERSION.zip
+
+ARG VERBOSE=false
+
+# If there is a local copy of the image use that instead
+COPY resources/ /tmp/
+
+# Install Open Liberty
+RUN microdnf -y install shadow-utils wget unzip openssl \
+ && if [ ! -f /tmp/wlp.zip ]; then wget -q $LIBERTY_DOWNLOAD_URL -U UA-Open-Liberty-Docker -O /tmp/wlp.zip; fi \
+ && echo "$LIBERTY_SHA /tmp/wlp.zip" > /tmp/wlp.zip.sha1 \
+ && sha1sum -c /tmp/wlp.zip.sha1 \
+ && chmod -R u+x /usr/bin \
+ && unzip -q /tmp/wlp.zip -d /opt/ol \
+ && mkdir -p /licenses \
+ && cp /opt/ol/wlp/LICENSE /licenses/ \
+ && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \
+ && chown -R 1001:0 /opt/ol/wlp \
+ && chmod -R g+rw /opt/ol/wlp
+
+# Install dumb-init
+RUN set -eux; \
+ ARCH="$(uname -m)"; \
+ case "${ARCH}" in \
+ aarch64|arm64) \
+ DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_aarch64'; \
+ DUMB_INIT_SHA256=b7d648f97154a99c539b63c55979cd29f005f88430fb383007fe3458340b795e; \
+ ;; \
+ amd64|x86_64) \
+ DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_x86_64'; \
+ DUMB_INIT_SHA256=e874b55f3279ca41415d290c512a7ba9d08f98041b28ae7c2acb19a545f1c4df; \
+ ;; \
+ ppc64el|ppc64le) \
+ DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_ppc64le'; \
+ DUMB_INIT_SHA256=3d15e80e29f0f4fa1fc686b00613a2220bc37e83a35283d4b4cca1fbd0a5609f; \
+ ;; \
+ s390x) \
+ DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_s390x'; \
+ DUMB_INIT_SHA256=47e4601b152fc6dcb1891e66c30ecc62a2939fd7ffd1515a7c30f281cfec53b7; \
+ ;;\
+ *) \
+ echo "Unsupported arch: ${ARCH}"; \
+ exit 1; \
+ ;; \
+ esac; \
+ curl -LfsSo /usr/bin/dumb-init ${DUMB_INIT_URL}; \
+ echo "${DUMB_INIT_SHA256} */usr/bin/dumb-init" | sha256sum -c -; \
+ chmod +x /usr/bin/dumb-init;
+
+FROM icr.io/appcafe/ibm-semeru-runtimes:open-25-jre-ubi10-micro
+
+USER root
+
+ARG LIBERTY_VERSION=26.0.0.9
+ARG LIBERTY_BUILD_LABEL=cl260920260824-0859
+
+ARG OPENJ9_SCC=true
+ARG VERBOSE=false
+
+LABEL org.opencontainers.image.authors="Leo Christy Jesuraj, Iain Lewis, Melissa Lee, Kirby Chin" \
+ org.opencontainers.image.vendor="Open Liberty" \
+ org.opencontainers.image.url="https://openliberty.io/" \
+ org.opencontainers.image.source="https://github.com/OpenLiberty/ci.docker" \
+ org.opencontainers.image.version="$LIBERTY_VERSION" \
+ org.opencontainers.image.revision="$LIBERTY_BUILD_LABEL" \
+ liberty.version="$LIBERTY_VERSION" \
+ io.openliberty.version="$LIBERTY_VERSION" \
+ vendor="Open Liberty" \
+ name="Open Liberty" \
+ version="$LIBERTY_VERSION" \
+ summary="Image for Open Liberty with IBM Semeru Runtime Open Edition OpenJDK 25 with OpenJ9 and UBI 10 micro" \
+ description="This image contains the Open Liberty runtime with IBM Semeru Runtime Open Edition OpenJDK 25 with OpenJ9 and Red Hat UBI 10 micro as the base OS. For more information on this image please see https://github.com/OpenLiberty/ci.docker#building-an-application-image"
+
+COPY NOTICES /opt/ol/NOTICES
+COPY helpers /opt/ol/helpers
+COPY fixes/ /opt/ol/fixes/
+
+# Add default user 1001 and create wlp with right user/permissions before copying
+RUN echo "1001:x:1001:0::/home/1001:/sbin/nologin" >> /etc/passwd \
+ && mkdir -p /home/1001 \
+ && chown 1001:0 /home/1001 \
+ && mkdir -p /opt/ol/wlp \
+ && chown -R 1001:0 /opt/ol/wlp \
+ && chmod -R g+rw /opt/ol/wlp
+
+COPY --from=builder /usr/bin/dumb-init /usr/bin/dumb-init
+COPY --from=builder /usr/bin/awk /usr/bin/awk
+COPY --from=builder /usr/bin/wget /usr/bin/wget
+
+COPY --from=builder /usr/lib64/libpsl.so* /usr/lib64/
+COPY --from=builder /usr/lib64/libmpfr.so* /usr/lib64/
+
+# Copy the runtime and licenses
+COPY --from=builder --chown=1001:0 /opt/ol/wlp /opt/ol/wlp
+COPY --from=builder /licenses /licenses
+
+# Set Path Shortcuts
+ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
+ LOG_DIR=/liberty/logs \
+ WLP_OUTPUT_DIR=/opt/ol/wlp/output \
+ WLP_SKIP_MAXPERMSIZE=true \
+ OPENJ9_SCC=$OPENJ9_SCC
+
+# Configure Open Liberty
+RUN /opt/ol/wlp/bin/server create \
+ && rm -rf $WLP_OUTPUT_DIR/.classCache /output/workarea \
+ && rm -rf /opt/ol/wlp/usr/servers/defaultServer/server.env
+
+# Create symlinks && set permissions for non-root user
+RUN mkdir /logs \
+ && chown -R 1001:0 /logs \
+ && chmod -R g+rw /logs \
+ && mkdir -p /opt/ol/wlp/usr/shared/resources/lib.index.cache \
+ && ln -s /opt/ol/wlp/usr/shared/resources/lib.index.cache /lib.index.cache \
+ && mkdir -p $WLP_OUTPUT_DIR/defaultServer \
+ && ln -s $WLP_OUTPUT_DIR/defaultServer /output \
+ && ln -s /opt/ol/wlp/usr/servers/defaultServer /config \
+ && mkdir -p /config/configDropins/defaults \
+ && mkdir -p /config/configDropins/overrides \
+ && ln -s /opt/ol/wlp /liberty \
+ && ln -s /opt/ol/fixes /fixes \
+ && echo "" > /config/configDropins/defaults/open-default-port.xml \
+ && chown -R 1001:0 /config \
+ && chmod -R g+rw /config \
+ && chown -R 1001:0 /opt/ol/wlp/usr \
+ && chmod -R g+rw /opt/ol/wlp/usr \
+ && chown -R 1001:0 /opt/ol/wlp/output \
+ && chmod -R g+rw /opt/ol/wlp/output \
+ && chown -R 1001:0 /opt/ol/helpers \
+ && chmod -R ug+rwx /opt/ol/helpers \
+ && chown -R 1001:0 /opt/ol/fixes \
+ && chmod -R g+rwx /opt/ol/fixes \
+ && mkdir /etc/wlp \
+ && chown -R 1001:0 /etc/wlp \
+ && chmod -R g+rw /etc/wlp \
+ && if [ -e /etc/instanton.ld.so.cache ]; then chmod g+w /etc/ld.so.cache; fi \
+ && ln -s /logs /liberty/logs \
+ && mkdir /serviceability \
+ && chown -R 1001:0 /serviceability \
+ && chmod -R g+rw /serviceability
+
+# Create a new SCC layer
+RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \
+ && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache /output/workarea \
+ && chown -R 1001:0 /opt/ol/wlp/output \
+ && chmod -R g+rwx /opt/ol/wlp/output
+
+#These settings are needed so that we can run as a different user than 1001 after server warmup
+ENV RANDFILE=/tmp/.rnd \
+ OPENJ9_JAVA_OPTIONS="-XX:+IgnoreUnrecognizedVMOptions -XX:+IdleTuningGcOnIdle -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,readonly,nonFatal -Dosgi.checkConfiguration=false"
+
+USER 1001
+
+EXPOSE 9443
+
+ENTRYPOINT ["/opt/ol/helpers/runtime/docker-server.sh"]
+CMD ["/opt/ol/wlp/bin/server", "run", "defaultServer"]
+
diff --git a/releases/26.0.0.9/kernel-slim/Dockerfile.ubi10-micro.openjdk8 b/releases/26.0.0.9/kernel-slim/Dockerfile.ubi10-micro.openjdk8
new file mode 100755
index 00000000..f2212121
--- /dev/null
+++ b/releases/26.0.0.9/kernel-slim/Dockerfile.ubi10-micro.openjdk8
@@ -0,0 +1,164 @@
+FROM registry.access.redhat.com/ubi10/ubi-minimal:latest AS builder
+
+USER root
+
+ARG LIBERTY_VERSION=26.0.0.9
+ARG LIBERTY_SHA=4ec644ee059a8d54a26c326763fd404a6baf1570
+ARG LIBERTY_DOWNLOAD_URL=https://repo1.maven.org/maven2/io/openliberty/openliberty-kernel/$LIBERTY_VERSION/openliberty-kernel-$LIBERTY_VERSION.zip
+
+ARG VERBOSE=false
+
+# If there is a local copy of the image use that instead
+COPY resources/ /tmp/
+
+# Install Open Liberty
+RUN microdnf -y install shadow-utils wget unzip openssl \
+ && if [ ! -f /tmp/wlp.zip ]; then wget -q $LIBERTY_DOWNLOAD_URL -U UA-Open-Liberty-Docker -O /tmp/wlp.zip; fi \
+ && echo "$LIBERTY_SHA /tmp/wlp.zip" > /tmp/wlp.zip.sha1 \
+ && sha1sum -c /tmp/wlp.zip.sha1 \
+ && chmod -R u+x /usr/bin \
+ && unzip -q /tmp/wlp.zip -d /opt/ol \
+ && mkdir -p /licenses \
+ && cp /opt/ol/wlp/LICENSE /licenses/ \
+ && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \
+ && chown -R 1001:0 /opt/ol/wlp \
+ && chmod -R g+rw /opt/ol/wlp
+
+# Install dumb-init
+RUN set -eux; \
+ ARCH="$(uname -m)"; \
+ case "${ARCH}" in \
+ aarch64|arm64) \
+ DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_aarch64'; \
+ DUMB_INIT_SHA256=b7d648f97154a99c539b63c55979cd29f005f88430fb383007fe3458340b795e; \
+ ;; \
+ amd64|x86_64) \
+ DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_x86_64'; \
+ DUMB_INIT_SHA256=e874b55f3279ca41415d290c512a7ba9d08f98041b28ae7c2acb19a545f1c4df; \
+ ;; \
+ ppc64el|ppc64le) \
+ DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_ppc64le'; \
+ DUMB_INIT_SHA256=3d15e80e29f0f4fa1fc686b00613a2220bc37e83a35283d4b4cca1fbd0a5609f; \
+ ;; \
+ s390x) \
+ DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_s390x'; \
+ DUMB_INIT_SHA256=47e4601b152fc6dcb1891e66c30ecc62a2939fd7ffd1515a7c30f281cfec53b7; \
+ ;;\
+ *) \
+ echo "Unsupported arch: ${ARCH}"; \
+ exit 1; \
+ ;; \
+ esac; \
+ curl -LfsSo /usr/bin/dumb-init ${DUMB_INIT_URL}; \
+ echo "${DUMB_INIT_SHA256} */usr/bin/dumb-init" | sha256sum -c -; \
+ chmod +x /usr/bin/dumb-init;
+
+FROM icr.io/appcafe/ibm-semeru-runtimes:open-8-jre-ubi10-micro
+
+USER root
+
+ARG LIBERTY_VERSION=26.0.0.9
+ARG LIBERTY_BUILD_LABEL=cl260920260824-0859
+
+ARG OPENJ9_SCC=true
+ARG VERBOSE=false
+
+LABEL org.opencontainers.image.authors="Leo Christy Jesuraj, Iain Lewis, Melissa Lee, Kirby Chin" \
+ org.opencontainers.image.vendor="Open Liberty" \
+ org.opencontainers.image.url="https://openliberty.io/" \
+ org.opencontainers.image.source="https://github.com/OpenLiberty/ci.docker" \
+ org.opencontainers.image.version="$LIBERTY_VERSION" \
+ org.opencontainers.image.revision="$LIBERTY_BUILD_LABEL" \
+ liberty.version="$LIBERTY_VERSION" \
+ io.openliberty.version="$LIBERTY_VERSION" \
+ vendor="Open Liberty" \
+ name="Open Liberty" \
+ version="$LIBERTY_VERSION" \
+ summary="Image for Open Liberty with IBM Semeru Runtime Open Edition OpenJDK 8 with OpenJ9 and UBI 10 micro" \
+ description="This image contains the Open Liberty runtime with IBM Semeru Runtime Open Edition OpenJDK 8 with OpenJ9 and Red Hat UBI 10 micro as the base OS. For more information on this image please see https://github.com/OpenLiberty/ci.docker#building-an-application-image"
+
+COPY NOTICES /opt/ol/NOTICES
+COPY helpers /opt/ol/helpers
+COPY fixes/ /opt/ol/fixes/
+
+# Add default user 1001 and create wlp with right user/permissions before copying
+RUN echo "1001:x:1001:0::/home/1001:/sbin/nologin" >> /etc/passwd \
+ && mkdir -p /home/1001 \
+ && chown 1001:0 /home/1001 \
+ && mkdir -p /opt/ol/wlp \
+ && chown -R 1001:0 /opt/ol/wlp \
+ && chmod -R g+rw /opt/ol/wlp
+
+COPY --from=builder /usr/bin/dumb-init /usr/bin/dumb-init
+COPY --from=builder /usr/bin/awk /usr/bin/awk
+COPY --from=builder /usr/bin/wget /usr/bin/wget
+
+COPY --from=builder /usr/lib64/libpsl.so* /usr/lib64/
+COPY --from=builder /usr/lib64/libmpfr.so* /usr/lib64/
+
+# Copy the runtime and licenses
+COPY --from=builder --chown=1001:0 /opt/ol/wlp /opt/ol/wlp
+COPY --from=builder /licenses /licenses
+
+# Set Path Shortcuts
+ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
+ LOG_DIR=/liberty/logs \
+ WLP_OUTPUT_DIR=/opt/ol/wlp/output \
+ WLP_SKIP_MAXPERMSIZE=true \
+ OPENJ9_SCC=$OPENJ9_SCC
+
+# Configure Open Liberty
+RUN /opt/ol/wlp/bin/server create \
+ && rm -rf $WLP_OUTPUT_DIR/.classCache /output/workarea \
+ && rm -rf /opt/ol/wlp/usr/servers/defaultServer/server.env
+
+# Create symlinks && set permissions for non-root user
+RUN mkdir /logs \
+ && chown -R 1001:0 /logs \
+ && chmod -R g+rw /logs \
+ && mkdir -p /opt/ol/wlp/usr/shared/resources/lib.index.cache \
+ && ln -s /opt/ol/wlp/usr/shared/resources/lib.index.cache /lib.index.cache \
+ && mkdir -p $WLP_OUTPUT_DIR/defaultServer \
+ && ln -s $WLP_OUTPUT_DIR/defaultServer /output \
+ && ln -s /opt/ol/wlp/usr/servers/defaultServer /config \
+ && mkdir -p /config/configDropins/defaults \
+ && mkdir -p /config/configDropins/overrides \
+ && ln -s /opt/ol/wlp /liberty \
+ && ln -s /opt/ol/fixes /fixes \
+ && echo "" > /config/configDropins/defaults/open-default-port.xml \
+ && chown -R 1001:0 /config \
+ && chmod -R g+rw /config \
+ && chown -R 1001:0 /opt/ol/wlp/usr \
+ && chmod -R g+rw /opt/ol/wlp/usr \
+ && chown -R 1001:0 /opt/ol/wlp/output \
+ && chmod -R g+rw /opt/ol/wlp/output \
+ && chown -R 1001:0 /opt/ol/helpers \
+ && chmod -R ug+rwx /opt/ol/helpers \
+ && chown -R 1001:0 /opt/ol/fixes \
+ && chmod -R g+rwx /opt/ol/fixes \
+ && mkdir /etc/wlp \
+ && chown -R 1001:0 /etc/wlp \
+ && chmod -R g+rw /etc/wlp \
+ && if [ -e /etc/instanton.ld.so.cache ]; then chmod g+w /etc/ld.so.cache; fi \
+ && ln -s /logs /liberty/logs \
+ && mkdir /serviceability \
+ && chown -R 1001:0 /serviceability \
+ && chmod -R g+rw /serviceability
+
+# Create a new SCC layer
+RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \
+ && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache /output/workarea \
+ && chown -R 1001:0 /opt/ol/wlp/output \
+ && chmod -R g+rwx /opt/ol/wlp/output
+
+#These settings are needed so that we can run as a different user than 1001 after server warmup
+ENV RANDFILE=/tmp/.rnd \
+ OPENJ9_JAVA_OPTIONS="-XX:+IgnoreUnrecognizedVMOptions -XX:+IdleTuningGcOnIdle -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,readonly,nonFatal -Dosgi.checkConfiguration=false"
+
+USER 1001
+
+EXPOSE 9443
+
+ENTRYPOINT ["/opt/ol/helpers/runtime/docker-server.sh"]
+CMD ["/opt/ol/wlp/bin/server", "run", "defaultServer"]
+
diff --git a/releases/26.0.0.9/kernel-slim/Dockerfile.ubi10-minimal.ibmjava8 b/releases/26.0.0.9/kernel-slim/Dockerfile.ubi10-minimal.ibmjava8
index ba9301d0..d626bf03 100644
--- a/releases/26.0.0.9/kernel-slim/Dockerfile.ubi10-minimal.ibmjava8
+++ b/releases/26.0.0.9/kernel-slim/Dockerfile.ubi10-minimal.ibmjava8
@@ -109,7 +109,8 @@ ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
LOG_DIR=/liberty/logs \
WLP_OUTPUT_DIR=/opt/ol/wlp/output \
WLP_SKIP_MAXPERMSIZE=true \
- OPENJ9_SCC=$OPENJ9_SCC
+ OPENJ9_SCC=$OPENJ9_SCC \
+ ENABLE_HTTP_PORT=true
# Configure Open Liberty
RUN /opt/ol/wlp/bin/server create \
diff --git a/releases/26.0.0.9/kernel-slim/Dockerfile.ubi10-minimal.openjdk11 b/releases/26.0.0.9/kernel-slim/Dockerfile.ubi10-minimal.openjdk11
index 7c010a0f..63f61c2e 100644
--- a/releases/26.0.0.9/kernel-slim/Dockerfile.ubi10-minimal.openjdk11
+++ b/releases/26.0.0.9/kernel-slim/Dockerfile.ubi10-minimal.openjdk11
@@ -100,7 +100,8 @@ ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
LOG_DIR=/liberty/logs \
WLP_OUTPUT_DIR=/opt/ol/wlp/output \
WLP_SKIP_MAXPERMSIZE=true \
- OPENJ9_SCC=$OPENJ9_SCC
+ OPENJ9_SCC=$OPENJ9_SCC \
+ ENABLE_HTTP_PORT=true
# Configure Open Liberty
RUN /opt/ol/wlp/bin/server create \
diff --git a/releases/26.0.0.9/kernel-slim/Dockerfile.ubi10-minimal.openjdk17 b/releases/26.0.0.9/kernel-slim/Dockerfile.ubi10-minimal.openjdk17
index af653730..8f162f27 100644
--- a/releases/26.0.0.9/kernel-slim/Dockerfile.ubi10-minimal.openjdk17
+++ b/releases/26.0.0.9/kernel-slim/Dockerfile.ubi10-minimal.openjdk17
@@ -100,7 +100,8 @@ ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
LOG_DIR=/liberty/logs \
WLP_OUTPUT_DIR=/opt/ol/wlp/output \
WLP_SKIP_MAXPERMSIZE=true \
- OPENJ9_SCC=$OPENJ9_SCC
+ OPENJ9_SCC=$OPENJ9_SCC \
+ ENABLE_HTTP_PORT=true
# Configure Open Liberty
RUN /opt/ol/wlp/bin/server create \
diff --git a/releases/26.0.0.9/kernel-slim/Dockerfile.ubi10-minimal.openjdk21 b/releases/26.0.0.9/kernel-slim/Dockerfile.ubi10-minimal.openjdk21
index 8ca52bfe..689c8ecf 100644
--- a/releases/26.0.0.9/kernel-slim/Dockerfile.ubi10-minimal.openjdk21
+++ b/releases/26.0.0.9/kernel-slim/Dockerfile.ubi10-minimal.openjdk21
@@ -100,7 +100,8 @@ ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
LOG_DIR=/liberty/logs \
WLP_OUTPUT_DIR=/opt/ol/wlp/output \
WLP_SKIP_MAXPERMSIZE=true \
- OPENJ9_SCC=$OPENJ9_SCC
+ OPENJ9_SCC=$OPENJ9_SCC \
+ ENABLE_HTTP_PORT=true
# Configure Open Liberty
RUN /opt/ol/wlp/bin/server create \
diff --git a/releases/26.0.0.9/kernel-slim/Dockerfile.ubi10-minimal.openjdk25 b/releases/26.0.0.9/kernel-slim/Dockerfile.ubi10-minimal.openjdk25
index 096bab68..4aee7685 100644
--- a/releases/26.0.0.9/kernel-slim/Dockerfile.ubi10-minimal.openjdk25
+++ b/releases/26.0.0.9/kernel-slim/Dockerfile.ubi10-minimal.openjdk25
@@ -100,7 +100,8 @@ ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
LOG_DIR=/liberty/logs \
WLP_OUTPUT_DIR=/opt/ol/wlp/output \
WLP_SKIP_MAXPERMSIZE=true \
- OPENJ9_SCC=$OPENJ9_SCC
+ OPENJ9_SCC=$OPENJ9_SCC \
+ ENABLE_HTTP_PORT=true
# Configure Open Liberty
RUN /opt/ol/wlp/bin/server create \
diff --git a/releases/26.0.0.9/kernel-slim/Dockerfile.ubi10-minimal.openjdk8 b/releases/26.0.0.9/kernel-slim/Dockerfile.ubi10-minimal.openjdk8
index e46ed4ea..5449ac26 100644
--- a/releases/26.0.0.9/kernel-slim/Dockerfile.ubi10-minimal.openjdk8
+++ b/releases/26.0.0.9/kernel-slim/Dockerfile.ubi10-minimal.openjdk8
@@ -100,7 +100,8 @@ ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
LOG_DIR=/liberty/logs \
WLP_OUTPUT_DIR=/opt/ol/wlp/output \
WLP_SKIP_MAXPERMSIZE=true \
- OPENJ9_SCC=$OPENJ9_SCC
+ OPENJ9_SCC=$OPENJ9_SCC \
+ ENABLE_HTTP_PORT=true
# Configure Open Liberty
RUN /opt/ol/wlp/bin/server create \
diff --git a/releases/26.0.0.9/kernel-slim/Dockerfile.ubuntu.openjdk11 b/releases/26.0.0.9/kernel-slim/Dockerfile.ubuntu.openjdk11
index b07c296f..3556b7f2 100644
--- a/releases/26.0.0.9/kernel-slim/Dockerfile.ubuntu.openjdk11
+++ b/releases/26.0.0.9/kernel-slim/Dockerfile.ubuntu.openjdk11
@@ -77,7 +77,8 @@ ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
LOG_DIR=/liberty/logs \
WLP_OUTPUT_DIR=/opt/ol/wlp/output \
WLP_SKIP_MAXPERMSIZE=true \
- OPENJ9_SCC=$OPENJ9_SCC
+ OPENJ9_SCC=$OPENJ9_SCC \
+ ENABLE_HTTP_PORT=true
# Configure Open Liberty
RUN /opt/ol/wlp/bin/server create \
diff --git a/releases/26.0.0.9/kernel-slim/Dockerfile.ubuntu.openjdk17 b/releases/26.0.0.9/kernel-slim/Dockerfile.ubuntu.openjdk17
index 80415b3f..ea56a05e 100644
--- a/releases/26.0.0.9/kernel-slim/Dockerfile.ubuntu.openjdk17
+++ b/releases/26.0.0.9/kernel-slim/Dockerfile.ubuntu.openjdk17
@@ -77,7 +77,8 @@ ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
LOG_DIR=/liberty/logs \
WLP_OUTPUT_DIR=/opt/ol/wlp/output \
WLP_SKIP_MAXPERMSIZE=true \
- OPENJ9_SCC=$OPENJ9_SCC
+ OPENJ9_SCC=$OPENJ9_SCC \
+ ENABLE_HTTP_PORT=true
# Configure Open Liberty
RUN /opt/ol/wlp/bin/server create \
diff --git a/releases/26.0.0.9/kernel-slim/Dockerfile.ubuntu.openjdk8 b/releases/26.0.0.9/kernel-slim/Dockerfile.ubuntu.openjdk8
index d4971090..e9c57848 100644
--- a/releases/26.0.0.9/kernel-slim/Dockerfile.ubuntu.openjdk8
+++ b/releases/26.0.0.9/kernel-slim/Dockerfile.ubuntu.openjdk8
@@ -77,7 +77,8 @@ ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
LOG_DIR=/liberty/logs \
WLP_OUTPUT_DIR=/opt/ol/wlp/output \
WLP_SKIP_MAXPERMSIZE=true \
- OPENJ9_SCC=$OPENJ9_SCC
+ OPENJ9_SCC=$OPENJ9_SCC \
+ ENABLE_HTTP_PORT=true
# Configure Open Liberty
RUN /opt/ol/wlp/bin/server create \
diff --git a/releases/26.0.0.9/kernel-slim/helpers/build/configuration_snippets/http-port-disabled.xml b/releases/26.0.0.9/kernel-slim/helpers/build/configuration_snippets/http-port-disabled.xml
new file mode 100644
index 00000000..4abd49cd
--- /dev/null
+++ b/releases/26.0.0.9/kernel-slim/helpers/build/configuration_snippets/http-port-disabled.xml
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/releases/26.0.0.9/kernel-slim/helpers/build/configuration_snippets/update-trigger-disabled.xml b/releases/26.0.0.9/kernel-slim/helpers/build/configuration_snippets/update-trigger-disabled.xml
new file mode 100644
index 00000000..b97391b5
--- /dev/null
+++ b/releases/26.0.0.9/kernel-slim/helpers/build/configuration_snippets/update-trigger-disabled.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
diff --git a/releases/26.0.0.9/kernel-slim/helpers/build/configure.sh b/releases/26.0.0.9/kernel-slim/helpers/build/configure.sh
index 5341dde1..75a8bbb3 100755
--- a/releases/26.0.0.9/kernel-slim/helpers/build/configure.sh
+++ b/releases/26.0.0.9/kernel-slim/helpers/build/configure.sh
@@ -18,6 +18,17 @@ function main() {
#Check for each Liberty value-add functionality
+ # Disable automatic configuration file monitoring (security hardening).
+ if [ "$SKIP_UPDATE_TRIGGER_DISABLED" != "true" ]; then
+ cp $SNIPPETS_SOURCE/update-trigger-disabled.xml $SNIPPETS_TARGET_DEFAULTS/update-trigger-disabled.xml
+ chmod g+rw $SNIPPETS_TARGET_DEFAULTS/update-trigger-disabled.xml
+ fi
+
+ # HTTP port is disabled by default. Set ENABLE_HTTP_PORT=true to re-enable port 9080.
+ if [ "$ENABLE_HTTP_PORT" != "true" ]; then
+ cp $SNIPPETS_SOURCE/http-port-disabled.xml $SNIPPETS_TARGET_DEFAULTS/http-port-disabled.xml
+ fi
+
# Infinispan Session Caching
if [[ -n "$INFINISPAN_SERVICE_NAME" ]]; then
cp ${SNIPPETS_SOURCE}/infinispan-client-sessioncache.xml ${SNIPPETS_TARGET}/infinispan-client-sessioncache.xml
diff --git a/releases/26.0.0.9/kernel-slim/helpers/build/features.sh b/releases/26.0.0.9/kernel-slim/helpers/build/features.sh
index 5b4800eb..7595603e 100755
--- a/releases/26.0.0.9/kernel-slim/helpers/build/features.sh
+++ b/releases/26.0.0.9/kernel-slim/helpers/build/features.sh
@@ -26,8 +26,14 @@ fi
if [ "$SSL" == "true" ] || [ "$TLS" == "true" ]; then
cp $SNIPPETS_SOURCE/tls.xml $SNIPPETS_TARGET/tls.xml
fi
-
# Install necessary features using featureUtility
featureUtility installServerFeatures --acceptLicense defaultServer --noCache
find /opt/ol/wlp/lib /opt/ol/wlp/bin ! -perm -g=rw -print0 | xargs -0 -r chmod g+rw
+# Validate the Liberty installation integrity after feature installation
+if [ "$SKIP_FEATURE_VALIDATE" != "true" ]; then
+ /opt/ol/wlp/bin/productInfo validate
+fi
+
+echo "features.sh script has been run" > /logs/features.log
+
diff --git a/releases/26.0.0.9/kernel-slim/helpers/build/populate_scc.sh b/releases/26.0.0.9/kernel-slim/helpers/build/populate_scc.sh
index 1012a07a..01e122d9 100755
--- a/releases/26.0.0.9/kernel-slim/helpers/build/populate_scc.sh
+++ b/releases/26.0.0.9/kernel-slim/helpers/build/populate_scc.sh
@@ -1,15 +1,28 @@
#!/bin/bash
. /opt/ol/helpers/build/internal/logger.sh
+# Use curl/wget to warm endpoints
+if command -v curl > /dev/null 2>&1; then
+ http_get() { curl --silent --output /dev/null --show-error --fail --max-time 5 --insecure "$1"; }
+else
+ http_get() { wget -q --no-check-certificate -O /dev/null -T 5 "$1"; }
+fi
+
set -Eeo pipefail
SCC_SIZE="80m" # Default size of the SCC layer.
ITERATIONS=2 # Number of iterations to run to populate it.
TRIM_SCC=yes # Trim the SCC to eliminate any wasted space.
WARM_ENDPOINT=true
-WARM_ENDPOINT_URL=localhost:9080/
WARM_OPENAPI_ENDPOINT=true
-WARM_OPENAPI_ENDPOINT_URL=localhost:9080/openapi
+
+# Default warm URLs based on ENABLE_HTTP_PORT, with HTTP_PORT/HTTPS_PORT overrides.
+if [ "$ENABLE_HTTP_PORT" == "true" ]; then
+ WARM_ENDPOINT_URL="http://localhost:${HTTP_PORT:-9080}/"
+else
+ WARM_ENDPOINT_URL="https://localhost:${HTTPS_PORT:-9443}/"
+fi
+WARM_OPENAPI_ENDPOINT_URL="${WARM_ENDPOINT_URL}openapi"
# If this directory exists and has at least ug=rwx permissions, assume the base image includes an SCC called 'openj9_system_scc' and build on it.
# If not, build on our own SCC.
@@ -81,10 +94,10 @@ do
-s Size of the SCC in megabytes (m suffix required). (Default: $SCC_SIZE)
-t Trim the SCC to eliminate most of the free space, if any.
-d Don't trim the SCC.
- -w Use curl to warm an endpoint during SCC creation. (Default: $WARM_ENDPOINT)
+ -w Use curl/wget to warm an endpoint during SCC creation. (Default: $WARM_ENDPOINT)
-c Do not warm an endpoint during SCC creation.
-u The URL endpoint to warm during SCC creation. (Default: $WARM_ENDPOINT_URL)
- -m Use curl to warm the openapi endpoint during SCC creation. (Default: $WARM_OPENAPI_ENDPOINT)
+ -m Use curl/wget to warm the openapi endpoint during SCC creation. (Default: $WARM_OPENAPI_ENDPOINT)
-l Do not warm the openapi endpoint during SCC creation.
-o The Open API URL endpoint to warm during SCC creation. (Default: $WARM_ENDPOINT_OPENAPI_URL)
@@ -117,11 +130,11 @@ then
if [ ${WARM_ENDPOINT} == true ]
then
- curl --silent --output /dev/null --show-error --fail --max-time 5 ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing"
+ http_get ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing"
fi
if [ ${WARM_OPENAPI_ENDPOINT} == true ]
then
- curl --silent --output /dev/null --show-error --fail --max-time 5 ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing"
+ http_get ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing"
fi
/opt/ol/wlp/bin/server stop
@@ -152,11 +165,11 @@ do
if [ ${WARM_ENDPOINT} == true ]
then
- curl --silent --output /dev/null --show-error --fail --max-time 5 ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing"
+ http_get ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing"
fi
if [ ${WARM_OPENAPI_ENDPOINT} == true ]
then
- curl --silent --output /dev/null --show-error --fail --max-time 5 ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing"
+ http_get ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing"
fi
/opt/ol/wlp/bin/server stop
diff --git a/releases/latest/beta/Dockerfile.ubi10-micro.openjdk25 b/releases/latest/beta/Dockerfile.ubi10-micro.openjdk25
new file mode 100644
index 00000000..9a6edafc
--- /dev/null
+++ b/releases/latest/beta/Dockerfile.ubi10-micro.openjdk25
@@ -0,0 +1,165 @@
+FROM registry.access.redhat.com/ubi10/ubi-minimal:latest AS builder
+
+USER root
+
+ARG LIBERTY_VERSION=26.0.0.10-beta
+ARG LIBERTY_SHA=f0429c01dd56f8ee1eb2a84095de7697ae9e1a0c
+ARG LIBERTY_DOWNLOAD_URL=https://repo1.maven.org/maven2/io/openliberty/beta/openliberty-runtime/$LIBERTY_VERSION/openliberty-runtime-$LIBERTY_VERSION.zip
+
+ARG VERBOSE=false
+
+# If there is a local copy of the image use that instead
+COPY resources/ /tmp/
+
+# Install Open Liberty
+RUN microdnf -y install shadow-utils wget unzip openssl \
+ && if [ ! -f /tmp/wlp.zip ]; then wget -q $LIBERTY_DOWNLOAD_URL -U UA-Open-Liberty-Docker -O /tmp/wlp.zip; fi \
+ && echo "$LIBERTY_SHA /tmp/wlp.zip" > /tmp/wlp.zip.sha1 \
+ && sha1sum -c /tmp/wlp.zip.sha1 \
+ && chmod -R u+x /usr/bin \
+ && unzip -q /tmp/wlp.zip -d /opt/ol \
+ && mkdir -p /licenses \
+ && cp /opt/ol/wlp/LICENSE /licenses/ \
+ && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \
+ && chown -R 1001:0 /opt/ol/wlp \
+ && chmod -R g+rw /opt/ol/wlp
+
+# Install dumb-init
+RUN set -eux; \
+ ARCH="$(uname -m)"; \
+ case "${ARCH}" in \
+ aarch64|arm64) \
+ DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_aarch64'; \
+ DUMB_INIT_SHA256=b7d648f97154a99c539b63c55979cd29f005f88430fb383007fe3458340b795e; \
+ ;; \
+ amd64|x86_64) \
+ DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_x86_64'; \
+ DUMB_INIT_SHA256=e874b55f3279ca41415d290c512a7ba9d08f98041b28ae7c2acb19a545f1c4df; \
+ ;; \
+ ppc64el|ppc64le) \
+ DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_ppc64le'; \
+ DUMB_INIT_SHA256=3d15e80e29f0f4fa1fc686b00613a2220bc37e83a35283d4b4cca1fbd0a5609f; \
+ ;; \
+ s390x) \
+ DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_s390x'; \
+ DUMB_INIT_SHA256=47e4601b152fc6dcb1891e66c30ecc62a2939fd7ffd1515a7c30f281cfec53b7; \
+ ;;\
+ *) \
+ echo "Unsupported arch: ${ARCH}"; \
+ exit 1; \
+ ;; \
+ esac; \
+ curl -LfsSo /usr/bin/dumb-init ${DUMB_INIT_URL}; \
+ echo "${DUMB_INIT_SHA256} */usr/bin/dumb-init" | sha256sum -c -; \
+ chmod +x /usr/bin/dumb-init;
+
+FROM icr.io/appcafe/ibm-semeru-runtimes:open-25-jre-ubi10-micro
+
+USER root
+
+ARG LIBERTY_VERSION=26.0.0.10-beta
+ARG LIBERTY_BUILD_LABEL=cl260920260824-0859
+
+ARG OPENJ9_SCC=true
+ARG VERBOSE=false
+
+LABEL org.opencontainers.image.authors="Leo Christy Jesuraj, Iain Lewis, Melissa Lee, Kirby Chin" \
+ org.opencontainers.image.vendor="Open Liberty" \
+ org.opencontainers.image.url="https://openliberty.io/" \
+ org.opencontainers.image.source="https://github.com/OpenLiberty/ci.docker" \
+ org.opencontainers.image.version="$LIBERTY_VERSION" \
+ org.opencontainers.image.revision="$LIBERTY_BUILD_LABEL" \
+ liberty.version="$LIBERTY_VERSION" \
+ io.openliberty.version="$LIBERTY_VERSION" \
+ vendor="Open Liberty" \
+ name="Open Liberty Beta" \
+ version="$LIBERTY_VERSION" \
+ summary="Image for Open Liberty Beta with IBM Semeru Runtime Open Edition OpenJDK 25 with OpenJ9 and UBI 10 micro" \
+ description="This image contains the Open Liberty beta runtime with IBM Semeru Runtime Open Edition OpenJDK 25 with OpenJ9 and Red Hat UBI 10 micro as the base OS. For more information on this image please see https://github.com/OpenLiberty/ci.docker#building-an-application-image"
+
+COPY NOTICES /opt/ol/NOTICES
+COPY helpers /opt/ol/helpers
+COPY fixes/ /opt/ol/fixes/
+
+# Add default user 1001 and create wlp with right user/permissions before copying
+RUN echo "1001:x:1001:0::/home/1001:/sbin/nologin" >> /etc/passwd \
+ && mkdir -p /home/1001 \
+ && chown 1001:0 /home/1001 \
+ && mkdir -p /opt/ol/wlp \
+ && chown -R 1001:0 /opt/ol/wlp \
+ && chmod -R g+rw /opt/ol/wlp
+
+COPY --from=builder /usr/bin/dumb-init /usr/bin/dumb-init
+COPY --from=builder /usr/bin/awk /usr/bin/awk
+COPY --from=builder /usr/bin/wget /usr/bin/wget
+
+COPY --from=builder /usr/lib64/libpsl.so* /usr/lib64/
+COPY --from=builder /usr/lib64/libmpfr.so* /usr/lib64/
+
+# Copy the runtime and licenses
+COPY --from=builder --chown=1001:0 /opt/ol/wlp /opt/ol/wlp
+COPY --from=builder /licenses /licenses
+
+# Set Path Shortcuts
+ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
+ LOG_DIR=/liberty/logs \
+ WLP_OUTPUT_DIR=/opt/ol/wlp/output \
+ WLP_SKIP_MAXPERMSIZE=true \
+ OPENJ9_SCC=$OPENJ9_SCC
+
+# Configure Open Liberty
+RUN /opt/ol/wlp/bin/server create --template=javaee8 \
+ && rm -rf $WLP_OUTPUT_DIR/.classCache /output/workarea \
+ && rm -rf /opt/ol/wlp/usr/servers/defaultServer/server.env
+
+# Create symlinks && set permissions for non-root user
+RUN mkdir /logs \
+ && chown -R 1001:0 /logs \
+ && chmod -R g+rw /logs \
+ && mkdir -p /opt/ol/wlp/usr/shared/resources/lib.index.cache \
+ && ln -s /opt/ol/wlp/usr/shared/resources/lib.index.cache /lib.index.cache \
+ && mkdir -p $WLP_OUTPUT_DIR/defaultServer \
+ && ln -s $WLP_OUTPUT_DIR/defaultServer /output \
+ && ln -s /opt/ol/wlp/usr/servers/defaultServer /config \
+ && mkdir -p /config/configDropins/defaults \
+ && mkdir -p /config/configDropins/overrides \
+ && mkdir -p /config/dropins \
+ && mkdir -p /config/apps \
+ && ln -s /opt/ol/wlp /liberty \
+ && ln -s /opt/ol/fixes /fixes \
+ && chown -R 1001:0 /config \
+ && chmod -R g+rw /config \
+ && chown -R 1001:0 /opt/ol/wlp/usr \
+ && chmod -R g+rw /opt/ol/wlp/usr \
+ && chown -R 1001:0 /opt/ol/wlp/output \
+ && chmod -R g+rw /opt/ol/wlp/output \
+ && chown -R 1001:0 /opt/ol/helpers \
+ && chmod -R ug+rwx /opt/ol/helpers \
+ && chown -R 1001:0 /opt/ol/fixes \
+ && chmod -R g+rwx /opt/ol/fixes \
+ && mkdir /etc/wlp \
+ && chown -R 1001:0 /etc/wlp \
+ && chmod -R g+rw /etc/wlp \
+ && if [ -e /etc/instanton.ld.so.cache ]; then chmod g+w /etc/ld.so.cache; fi \
+ && echo "" > /config/configDropins/defaults/open-default-port.xml \
+ && ln -s /logs /liberty/logs \
+ && mkdir /serviceability \
+ && chown -R 1001:0 /serviceability \
+ && chmod -R g+rw /serviceability
+
+# Create a new SCC layer
+RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \
+ && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache \
+ && chown -R 1001:0 /opt/ol/wlp/output \
+ && chmod -R g+rwx /opt/ol/wlp/output
+
+#These settings are needed so that we can run as a different user than 1001 after server warmup
+ENV RANDFILE=/tmp/.rnd \
+ OPENJ9_JAVA_OPTIONS="-XX:+IgnoreUnrecognizedVMOptions -XX:+IdleTuningGcOnIdle -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,readonly,nonFatal -Dosgi.checkConfiguration=false"
+
+USER 1001
+
+EXPOSE 9080 9443
+
+ENTRYPOINT ["/opt/ol/helpers/runtime/docker-server.sh"]
+CMD ["/opt/ol/wlp/bin/server", "run", "defaultServer"]
diff --git a/releases/latest/beta/Dockerfile.ubi10-minimal.openjdk25 b/releases/latest/beta/Dockerfile.ubi10-minimal.openjdk25
index 58576aa8..d15f32a5 100644
--- a/releases/latest/beta/Dockerfile.ubi10-minimal.openjdk25
+++ b/releases/latest/beta/Dockerfile.ubi10-minimal.openjdk25
@@ -100,7 +100,8 @@ ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
LOG_DIR=/liberty/logs \
WLP_OUTPUT_DIR=/opt/ol/wlp/output \
WLP_SKIP_MAXPERMSIZE=true \
- OPENJ9_SCC=$OPENJ9_SCC
+ OPENJ9_SCC=$OPENJ9_SCC \
+ ENABLE_HTTP_PORT=true
# Configure Open Liberty
RUN /opt/ol/wlp/bin/server create --template=javaee8 \
diff --git a/releases/latest/beta/Dockerfile.ubuntu.openjdk11 b/releases/latest/beta/Dockerfile.ubuntu.openjdk11
index 90aef0f8..13c575c3 100644
--- a/releases/latest/beta/Dockerfile.ubuntu.openjdk11
+++ b/releases/latest/beta/Dockerfile.ubuntu.openjdk11
@@ -77,7 +77,8 @@ ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
LOG_DIR=/liberty/logs \
WLP_OUTPUT_DIR=/opt/ol/wlp/output \
WLP_SKIP_MAXPERMSIZE=true \
- OPENJ9_SCC=$OPENJ9_SCC
+ OPENJ9_SCC=$OPENJ9_SCC \
+ ENABLE_HTTP_PORT=true
# Configure Open Liberty
RUN /opt/ol/wlp/bin/server create --template=javaee8 \
diff --git a/releases/latest/beta/Dockerfile.ubuntu.openjdk17 b/releases/latest/beta/Dockerfile.ubuntu.openjdk17
index de5514b3..7ae5d9c9 100644
--- a/releases/latest/beta/Dockerfile.ubuntu.openjdk17
+++ b/releases/latest/beta/Dockerfile.ubuntu.openjdk17
@@ -77,7 +77,8 @@ ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
LOG_DIR=/liberty/logs \
WLP_OUTPUT_DIR=/opt/ol/wlp/output \
WLP_SKIP_MAXPERMSIZE=true \
- OPENJ9_SCC=$OPENJ9_SCC
+ OPENJ9_SCC=$OPENJ9_SCC \
+ ENABLE_HTTP_PORT=true
# Configure Open Liberty
RUN /opt/ol/wlp/bin/server create --template=javaee8 \
diff --git a/releases/latest/beta/Dockerfile.ubuntu.openjdk8 b/releases/latest/beta/Dockerfile.ubuntu.openjdk8
index 39b0b482..ddbcad3b 100644
--- a/releases/latest/beta/Dockerfile.ubuntu.openjdk8
+++ b/releases/latest/beta/Dockerfile.ubuntu.openjdk8
@@ -77,7 +77,8 @@ ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
LOG_DIR=/liberty/logs \
WLP_OUTPUT_DIR=/opt/ol/wlp/output \
WLP_SKIP_MAXPERMSIZE=true \
- OPENJ9_SCC=$OPENJ9_SCC
+ OPENJ9_SCC=$OPENJ9_SCC \
+ ENABLE_HTTP_PORT=true
# Configure Open Liberty
RUN /opt/ol/wlp/bin/server create --template=javaee8 \
diff --git a/releases/latest/beta/helpers/build/configuration_snippets/http-port-disabled.xml b/releases/latest/beta/helpers/build/configuration_snippets/http-port-disabled.xml
new file mode 100644
index 00000000..4abd49cd
--- /dev/null
+++ b/releases/latest/beta/helpers/build/configuration_snippets/http-port-disabled.xml
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/releases/latest/beta/helpers/build/configuration_snippets/update-trigger-disabled.xml b/releases/latest/beta/helpers/build/configuration_snippets/update-trigger-disabled.xml
new file mode 100644
index 00000000..b97391b5
--- /dev/null
+++ b/releases/latest/beta/helpers/build/configuration_snippets/update-trigger-disabled.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
diff --git a/releases/latest/beta/helpers/build/configure.sh b/releases/latest/beta/helpers/build/configure.sh
index e7b38534..41d30dfb 100755
--- a/releases/latest/beta/helpers/build/configure.sh
+++ b/releases/latest/beta/helpers/build/configure.sh
@@ -18,6 +18,17 @@ function main() {
#Check for each Liberty value-add functionality
+ # Disable automatic configuration file monitoring (security hardening).
+ if [ "$SKIP_UPDATE_TRIGGER_DISABLED" != "true" ]; then
+ cp $SNIPPETS_SOURCE/update-trigger-disabled.xml $SNIPPETS_TARGET_DEFAULTS/update-trigger-disabled.xml
+ chmod g+rw $SNIPPETS_TARGET_DEFAULTS/update-trigger-disabled.xml
+ fi
+
+ # HTTP port is disabled by default. Set ENABLE_HTTP_PORT=true to re-enable port 9080.
+ if [ "$ENABLE_HTTP_PORT" != "true" ]; then
+ cp $SNIPPETS_SOURCE/http-port-disabled.xml $SNIPPETS_TARGET_DEFAULTS/http-port-disabled.xml
+ fi
+
# MicroProfile Health
if [ "$MP_HEALTH_CHECK" == "true" ]; then
cp $SNIPPETS_SOURCE/mp-health-check.xml $SNIPPETS_TARGET/mp-health-check.xml
diff --git a/releases/latest/beta/helpers/build/populate_scc.sh b/releases/latest/beta/helpers/build/populate_scc.sh
index f0805015..01e122d9 100755
--- a/releases/latest/beta/helpers/build/populate_scc.sh
+++ b/releases/latest/beta/helpers/build/populate_scc.sh
@@ -1,15 +1,28 @@
#!/bin/bash
. /opt/ol/helpers/build/internal/logger.sh
+# Use curl/wget to warm endpoints
+if command -v curl > /dev/null 2>&1; then
+ http_get() { curl --silent --output /dev/null --show-error --fail --max-time 5 --insecure "$1"; }
+else
+ http_get() { wget -q --no-check-certificate -O /dev/null -T 5 "$1"; }
+fi
+
set -Eeo pipefail
SCC_SIZE="80m" # Default size of the SCC layer.
ITERATIONS=2 # Number of iterations to run to populate it.
TRIM_SCC=yes # Trim the SCC to eliminate any wasted space.
WARM_ENDPOINT=true
-WARM_ENDPOINT_URL=localhost:9080/
WARM_OPENAPI_ENDPOINT=true
-WARM_OPENAPI_ENDPOINT_URL=localhost:9080/openapi
+
+# Default warm URLs based on ENABLE_HTTP_PORT, with HTTP_PORT/HTTPS_PORT overrides.
+if [ "$ENABLE_HTTP_PORT" == "true" ]; then
+ WARM_ENDPOINT_URL="http://localhost:${HTTP_PORT:-9080}/"
+else
+ WARM_ENDPOINT_URL="https://localhost:${HTTPS_PORT:-9443}/"
+fi
+WARM_OPENAPI_ENDPOINT_URL="${WARM_ENDPOINT_URL}openapi"
# If this directory exists and has at least ug=rwx permissions, assume the base image includes an SCC called 'openj9_system_scc' and build on it.
# If not, build on our own SCC.
@@ -29,7 +42,12 @@ fi
# option to revert to the old criteria, which results in AOT code that is more compatible, on average, with typical heap sizes/positions.
# The option has no effect on later JDKs.
# Using -XX:+IProfileDuringStartupPhase to enforce IProfiler collection during the startup phase to better populate the SCC.
-export OPENJ9_JAVA_OPTIONS="-XX:+OriginalJDK8HeapSizeCompatibilityMode -XX:+IProfileDuringStartupPhase $SCC"
+# Disable GCContainerHeuristics for ibmjava JVMs as workaround for ibmjava 8.0.8.70 build failures
+GC_OPT=""
+if [ -d "/opt/ibm/java" ]; then
+ GC_OPT="-XX:-GCContainerHeuristics "
+fi
+export OPENJ9_JAVA_OPTIONS="${GC_OPT}-XX:+OriginalJDK8HeapSizeCompatibilityMode -XX:+IProfileDuringStartupPhase $SCC"
export IBM_JAVA_OPTIONS="$OPENJ9_JAVA_OPTIONS"
CREATE_LAYER="$OPENJ9_JAVA_OPTIONS,createLayer,groupAccess"
DESTROY_LAYER="$OPENJ9_JAVA_OPTIONS,destroy"
@@ -76,10 +94,10 @@ do
-s Size of the SCC in megabytes (m suffix required). (Default: $SCC_SIZE)
-t Trim the SCC to eliminate most of the free space, if any.
-d Don't trim the SCC.
- -w Use curl to warm an endpoint during SCC creation. (Default: $WARM_ENDPOINT)
+ -w Use curl/wget to warm an endpoint during SCC creation. (Default: $WARM_ENDPOINT)
-c Do not warm an endpoint during SCC creation.
-u The URL endpoint to warm during SCC creation. (Default: $WARM_ENDPOINT_URL)
- -m Use curl to warm the openapi endpoint during SCC creation. (Default: $WARM_OPENAPI_ENDPOINT)
+ -m Use curl/wget to warm the openapi endpoint during SCC creation. (Default: $WARM_OPENAPI_ENDPOINT)
-l Do not warm the openapi endpoint during SCC creation.
-o The Open API URL endpoint to warm during SCC creation. (Default: $WARM_ENDPOINT_OPENAPI_URL)
@@ -112,11 +130,11 @@ then
if [ ${WARM_ENDPOINT} == true ]
then
- curl --silent --output /dev/null --show-error --fail --max-time 5 ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing"
+ http_get ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing"
fi
if [ ${WARM_OPENAPI_ENDPOINT} == true ]
then
- curl --silent --output /dev/null --show-error --fail --max-time 5 ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing"
+ http_get ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing"
fi
/opt/ol/wlp/bin/server stop
@@ -147,11 +165,11 @@ do
if [ ${WARM_ENDPOINT} == true ]
then
- curl --silent --output /dev/null --show-error --fail --max-time 5 ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing"
+ http_get ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing"
fi
if [ ${WARM_OPENAPI_ENDPOINT} == true ]
then
- curl --silent --output /dev/null --show-error --fail --max-time 5 ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing"
+ http_get ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing"
fi
/opt/ol/wlp/bin/server stop
diff --git a/releases/latest/full/Dockerfile.ubi.ibmjava8 b/releases/latest/full/Dockerfile.ubi.ibmjava8
index e4431fc2..432f80d9 100644
--- a/releases/latest/full/Dockerfile.ubi.ibmjava8
+++ b/releases/latest/full/Dockerfile.ubi.ibmjava8
@@ -99,7 +99,8 @@ ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
LOG_DIR=/liberty/logs \
WLP_OUTPUT_DIR=/opt/ol/wlp/output \
WLP_SKIP_MAXPERMSIZE=true \
- OPENJ9_SCC=$OPENJ9_SCC
+ OPENJ9_SCC=$OPENJ9_SCC \
+ ENABLE_HTTP_PORT=true
# Configure Open Liberty
RUN /opt/ol/wlp/bin/server create --template=javaee8 \
diff --git a/releases/latest/full/Dockerfile.ubi.openjdk11 b/releases/latest/full/Dockerfile.ubi.openjdk11
index 2ddd2f34..13f94628 100644
--- a/releases/latest/full/Dockerfile.ubi.openjdk11
+++ b/releases/latest/full/Dockerfile.ubi.openjdk11
@@ -99,7 +99,8 @@ ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
LOG_DIR=/liberty/logs \
WLP_OUTPUT_DIR=/opt/ol/wlp/output \
WLP_SKIP_MAXPERMSIZE=true \
- OPENJ9_SCC=$OPENJ9_SCC
+ OPENJ9_SCC=$OPENJ9_SCC \
+ ENABLE_HTTP_PORT=true
# Configure Open Liberty
RUN /opt/ol/wlp/bin/server create --template=javaee8 \
diff --git a/releases/latest/full/Dockerfile.ubi.openjdk17 b/releases/latest/full/Dockerfile.ubi.openjdk17
index 2a36429a..adf8e9d6 100644
--- a/releases/latest/full/Dockerfile.ubi.openjdk17
+++ b/releases/latest/full/Dockerfile.ubi.openjdk17
@@ -99,7 +99,8 @@ ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
LOG_DIR=/liberty/logs \
WLP_OUTPUT_DIR=/opt/ol/wlp/output \
WLP_SKIP_MAXPERMSIZE=true \
- OPENJ9_SCC=$OPENJ9_SCC
+ OPENJ9_SCC=$OPENJ9_SCC \
+ ENABLE_HTTP_PORT=true
# Configure Open Liberty
RUN /opt/ol/wlp/bin/server create --template=javaee8 \
diff --git a/releases/latest/full/Dockerfile.ubi.openjdk8 b/releases/latest/full/Dockerfile.ubi.openjdk8
index 5496f809..04b25f9a 100644
--- a/releases/latest/full/Dockerfile.ubi.openjdk8
+++ b/releases/latest/full/Dockerfile.ubi.openjdk8
@@ -99,7 +99,8 @@ ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
LOG_DIR=/liberty/logs \
WLP_OUTPUT_DIR=/opt/ol/wlp/output \
WLP_SKIP_MAXPERMSIZE=true \
- OPENJ9_SCC=$OPENJ9_SCC
+ OPENJ9_SCC=$OPENJ9_SCC \
+ ENABLE_HTTP_PORT=true
# Configure Open Liberty
RUN /opt/ol/wlp/bin/server create --template=javaee8 \
diff --git a/releases/latest/full/Dockerfile.ubi10-micro.ibmjava8 b/releases/latest/full/Dockerfile.ubi10-micro.ibmjava8
new file mode 100644
index 00000000..0a4d48c1
--- /dev/null
+++ b/releases/latest/full/Dockerfile.ubi10-micro.ibmjava8
@@ -0,0 +1,53 @@
+ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:kernel-slim-java8-ibmjava-ubi-micro
+
+# ubi-micro has no package manager; install unzip from ubi-minimal and copy it in
+FROM registry.access.redhat.com/ubi10/ubi-minimal AS builder
+RUN microdnf -y install unzip && microdnf clean all
+
+FROM $PARENT_IMAGE AS installBundle
+
+ARG VERBOSE=false
+ARG LIBERTY_VERSION=26.0.0.9
+ARG FEATURES_SHA=971f2f2434b57f39c8329ffc075ed26ba5e23742
+
+# If there is a local copy of the repository use that instead
+COPY resources/ /tmp/
+
+# We need unzip when using a local repo; copy it from ubi-minimal builder stage
+USER root
+COPY --from=builder /usr/bin/unzip /usr/bin/unzip
+COPY --from=builder /usr/lib64/libbz2.so* /usr/lib64/
+USER 1001
+
+# Install all features
+RUN set -eux; \
+ if [ ! -f /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip ]; then \
+ wget -q https://repo1.maven.org/maven2/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json -O /tmp/features-$LIBERTY_VERSION.json; \
+ echo "$FEATURES_SHA /tmp/features-$LIBERTY_VERSION.json" > /tmp/features-$LIBERTY_VERSION.json.sha1; \
+ sha1sum -c /tmp/features-$LIBERTY_VERSION.json.sha1; \
+ else \
+ echo "$FEATURES_SHA /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip" > /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \
+ sha1sum -c /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \
+ mkdir /tmp/feature-repo-$LIBERTY_VERSION; \
+ unzip -d /tmp/feature-repo-$LIBERTY_VERSION /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip; \
+ cp /tmp/feature-repo-$LIBERTY_VERSION/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json /tmp; \
+ export FEATURE_LOCAL_REPO=/tmp/feature-repo-$LIBERTY_VERSION; \
+ export FEATURE_VERIFY=skip; \
+ fi; \
+ grep \"shortName\" /tmp/features-$LIBERTY_VERSION.json | sed -e 's/.* //' -e 's/,//' | xargs featureUtility installFeature --acceptLicense --noCache; \
+ rm -rf /output/workarea /output/logs; \
+ find /opt/ol/wlp ! -perm -g=rw -print0 | xargs -r -0 chmod g+rw;
+
+ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:kernel-slim-java8-ibmjava-ubi-micro
+FROM $PARENT_IMAGE
+ARG VERBOSE=false
+
+# Copy the runtime
+COPY --from=installBundle --chown=1001:0 /opt/ol/wlp /opt/ol/wlp
+
+COPY --chown=1001:0 server-http-port-enabled.xml /config/server.xml
+
+# Create a new SCC layer
+RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \
+ && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache \
+ && find /opt/ol/wlp/output ! -perm -g=rwx -print0 | xargs -0 -r chmod g+rwx
diff --git a/releases/latest/full/Dockerfile.ubi10-micro.openjdk11 b/releases/latest/full/Dockerfile.ubi10-micro.openjdk11
new file mode 100644
index 00000000..0dbfdc00
--- /dev/null
+++ b/releases/latest/full/Dockerfile.ubi10-micro.openjdk11
@@ -0,0 +1,52 @@
+ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:kernel-slim-java11-openj9-ubi-micro
+
+# ubi-micro has no package manager; install unzip from ubi-minimal and copy it in
+FROM registry.access.redhat.com/ubi10/ubi-minimal AS builder
+RUN microdnf -y install unzip && microdnf clean all
+
+FROM $PARENT_IMAGE AS installBundle
+
+ARG VERBOSE=false
+ARG LIBERTY_VERSION=26.0.0.9
+ARG FEATURES_SHA=971f2f2434b57f39c8329ffc075ed26ba5e23742
+
+# If there is a local copy of the repository use that instead
+COPY resources/ /tmp/
+
+# We need unzip when using a local repo; copy it from ubi-minimal builder stage
+USER root
+COPY --from=builder /usr/bin/unzip /usr/bin/unzip
+USER 1001
+
+# Install all features
+RUN set -eux; \
+ if [ ! -f /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip ]; then \
+ wget -q https://repo1.maven.org/maven2/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json -O /tmp/features-$LIBERTY_VERSION.json; \
+ echo "$FEATURES_SHA /tmp/features-$LIBERTY_VERSION.json" > /tmp/features-$LIBERTY_VERSION.json.sha1; \
+ sha1sum -c /tmp/features-$LIBERTY_VERSION.json.sha1; \
+ else \
+ echo "$FEATURES_SHA /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip" > /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \
+ sha1sum -c /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \
+ mkdir /tmp/feature-repo-$LIBERTY_VERSION; \
+ unzip -d /tmp/feature-repo-$LIBERTY_VERSION /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip; \
+ cp /tmp/feature-repo-$LIBERTY_VERSION/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json /tmp; \
+ export FEATURE_LOCAL_REPO=/tmp/feature-repo-$LIBERTY_VERSION; \
+ export FEATURE_VERIFY=skip; \
+ fi; \
+ grep \"shortName\" /tmp/features-$LIBERTY_VERSION.json | sed -e 's/.* //' -e 's/,//' | xargs featureUtility installFeature --acceptLicense --noCache; \
+ rm -rf /output/workarea /output/logs; \
+ find /opt/ol/wlp ! -perm -g=rw -print0 | xargs -r -0 chmod g+rw;
+
+ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:kernel-slim-java11-openj9-ubi-micro
+FROM $PARENT_IMAGE
+ARG VERBOSE=false
+
+# Copy the runtime
+COPY --from=installBundle --chown=1001:0 /opt/ol/wlp /opt/ol/wlp
+
+COPY --chown=1001:0 server-http-port-enabled.xml /config/server.xml
+
+# Create a new SCC layer
+RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \
+ && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache \
+ && find /opt/ol/wlp/output ! -perm -g=rwx -print0 | xargs -0 -r chmod g+rwx
diff --git a/releases/latest/full/Dockerfile.ubi10-micro.openjdk17 b/releases/latest/full/Dockerfile.ubi10-micro.openjdk17
new file mode 100644
index 00000000..c5064ee1
--- /dev/null
+++ b/releases/latest/full/Dockerfile.ubi10-micro.openjdk17
@@ -0,0 +1,52 @@
+ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:kernel-slim-java17-openj9-ubi-micro
+
+# ubi-micro has no package manager; install unzip from ubi-minimal and copy it in
+FROM registry.access.redhat.com/ubi10/ubi-minimal AS builder
+RUN microdnf -y install unzip && microdnf clean all
+
+FROM $PARENT_IMAGE AS installBundle
+
+ARG VERBOSE=false
+ARG LIBERTY_VERSION=26.0.0.9
+ARG FEATURES_SHA=971f2f2434b57f39c8329ffc075ed26ba5e23742
+
+# If there is a local copy of the repository use that instead
+COPY resources/ /tmp/
+
+# We need unzip when using a local repo; copy it from ubi-minimal builder stage
+USER root
+COPY --from=builder /usr/bin/unzip /usr/bin/unzip
+USER 1001
+
+# Install all features
+RUN set -eux; \
+ if [ ! -f /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip ]; then \
+ wget -q https://repo1.maven.org/maven2/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json -O /tmp/features-$LIBERTY_VERSION.json; \
+ echo "$FEATURES_SHA /tmp/features-$LIBERTY_VERSION.json" > /tmp/features-$LIBERTY_VERSION.json.sha1; \
+ sha1sum -c /tmp/features-$LIBERTY_VERSION.json.sha1; \
+ else \
+ echo "$FEATURES_SHA /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip" > /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \
+ sha1sum -c /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \
+ mkdir /tmp/feature-repo-$LIBERTY_VERSION; \
+ unzip -d /tmp/feature-repo-$LIBERTY_VERSION /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip; \
+ cp /tmp/feature-repo-$LIBERTY_VERSION/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json /tmp; \
+ export FEATURE_LOCAL_REPO=/tmp/feature-repo-$LIBERTY_VERSION; \
+ export FEATURE_VERIFY=skip; \
+ fi; \
+ grep \"shortName\" /tmp/features-$LIBERTY_VERSION.json | sed -e 's/.* //' -e 's/,//' | xargs featureUtility installFeature --acceptLicense --noCache; \
+ rm -rf /output/workarea /output/logs; \
+ find /opt/ol/wlp ! -perm -g=rw -print0 | xargs -r -0 chmod g+rw;
+
+ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:kernel-slim-java17-openj9-ubi-micro
+FROM $PARENT_IMAGE
+ARG VERBOSE=false
+
+# Copy the runtime
+COPY --from=installBundle --chown=1001:0 /opt/ol/wlp /opt/ol/wlp
+
+COPY --chown=1001:0 server-http-port-enabled.xml /config/server.xml
+
+# Create a new SCC layer
+RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \
+ && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache \
+ && find /opt/ol/wlp/output ! -perm -g=rwx -print0 | xargs -0 -r chmod g+rwx
diff --git a/releases/latest/full/Dockerfile.ubi10-micro.openjdk21 b/releases/latest/full/Dockerfile.ubi10-micro.openjdk21
new file mode 100644
index 00000000..3e4945da
--- /dev/null
+++ b/releases/latest/full/Dockerfile.ubi10-micro.openjdk21
@@ -0,0 +1,52 @@
+ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:kernel-slim-java21-openj9-ubi-micro
+
+# ubi-micro has no package manager; install unzip from ubi-minimal and copy it in
+FROM registry.access.redhat.com/ubi10/ubi-minimal AS builder
+RUN microdnf -y install unzip && microdnf clean all
+
+FROM $PARENT_IMAGE AS installBundle
+
+ARG VERBOSE=false
+ARG LIBERTY_VERSION=26.0.0.9
+ARG FEATURES_SHA=971f2f2434b57f39c8329ffc075ed26ba5e23742
+
+# If there is a local copy of the repository use that instead
+COPY resources/ /tmp/
+
+# We need unzip when using a local repo; copy it from ubi-minimal builder stage
+USER root
+COPY --from=builder /usr/bin/unzip /usr/bin/unzip
+USER 1001
+
+# Install all features
+RUN set -eux; \
+ if [ ! -f /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip ]; then \
+ wget -q https://repo1.maven.org/maven2/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json -O /tmp/features-$LIBERTY_VERSION.json; \
+ echo "$FEATURES_SHA /tmp/features-$LIBERTY_VERSION.json" > /tmp/features-$LIBERTY_VERSION.json.sha1; \
+ sha1sum -c /tmp/features-$LIBERTY_VERSION.json.sha1; \
+ else \
+ echo "$FEATURES_SHA /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip" > /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \
+ sha1sum -c /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \
+ mkdir /tmp/feature-repo-$LIBERTY_VERSION; \
+ unzip -d /tmp/feature-repo-$LIBERTY_VERSION /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip; \
+ cp /tmp/feature-repo-$LIBERTY_VERSION/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json /tmp; \
+ export FEATURE_LOCAL_REPO=/tmp/feature-repo-$LIBERTY_VERSION; \
+ export FEATURE_VERIFY=skip; \
+ fi; \
+ grep \"shortName\" /tmp/features-$LIBERTY_VERSION.json | sed -e 's/.* //' -e 's/,//' | xargs featureUtility installFeature --acceptLicense --noCache; \
+ rm -rf /output/workarea /output/logs; \
+ find /opt/ol/wlp ! -perm -g=rw -print0 | xargs -r -0 chmod g+rw;
+
+ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:kernel-slim-java21-openj9-ubi-micro
+FROM $PARENT_IMAGE
+ARG VERBOSE=false
+
+# Copy the runtime
+COPY --from=installBundle --chown=1001:0 /opt/ol/wlp /opt/ol/wlp
+
+COPY --chown=1001:0 server-http-port-enabled.xml /config/server.xml
+
+# Create a new SCC layer
+RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \
+ && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache \
+ && find /opt/ol/wlp/output ! -perm -g=rwx -print0 | xargs -0 -r chmod g+rwx
diff --git a/releases/latest/full/Dockerfile.ubi10-micro.openjdk25 b/releases/latest/full/Dockerfile.ubi10-micro.openjdk25
new file mode 100644
index 00000000..b65326df
--- /dev/null
+++ b/releases/latest/full/Dockerfile.ubi10-micro.openjdk25
@@ -0,0 +1,52 @@
+ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:kernel-slim-java25-openj9-ubi-micro
+
+# ubi-micro has no package manager; install unzip from ubi-minimal and copy it in
+FROM registry.access.redhat.com/ubi10/ubi-minimal AS builder
+RUN microdnf -y install unzip && microdnf clean all
+
+FROM $PARENT_IMAGE AS installBundle
+
+ARG VERBOSE=false
+ARG LIBERTY_VERSION=26.0.0.9
+ARG FEATURES_SHA=971f2f2434b57f39c8329ffc075ed26ba5e23742
+
+# If there is a local copy of the repository use that instead
+COPY resources/ /tmp/
+
+# We need unzip when using a local repo; copy it from ubi-minimal builder stage
+USER root
+COPY --from=builder /usr/bin/unzip /usr/bin/unzip
+USER 1001
+
+# Install all features
+RUN set -eux; \
+ if [ ! -f /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip ]; then \
+ wget -q https://repo1.maven.org/maven2/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json -O /tmp/features-$LIBERTY_VERSION.json; \
+ echo "$FEATURES_SHA /tmp/features-$LIBERTY_VERSION.json" > /tmp/features-$LIBERTY_VERSION.json.sha1; \
+ sha1sum -c /tmp/features-$LIBERTY_VERSION.json.sha1; \
+ else \
+ echo "$FEATURES_SHA /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip" > /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \
+ sha1sum -c /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \
+ mkdir /tmp/feature-repo-$LIBERTY_VERSION; \
+ unzip -d /tmp/feature-repo-$LIBERTY_VERSION /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip; \
+ cp /tmp/feature-repo-$LIBERTY_VERSION/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json /tmp; \
+ export FEATURE_LOCAL_REPO=/tmp/feature-repo-$LIBERTY_VERSION; \
+ export FEATURE_VERIFY=skip; \
+ fi; \
+ grep \"shortName\" /tmp/features-$LIBERTY_VERSION.json | sed -e 's/.* //' -e 's/,//' | xargs featureUtility installFeature --acceptLicense --noCache; \
+ rm -rf /output/workarea /output/logs; \
+ find /opt/ol/wlp ! -perm -g=rw -print0 | xargs -r -0 chmod g+rw;
+
+ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:kernel-slim-java25-openj9-ubi-micro
+FROM $PARENT_IMAGE
+ARG VERBOSE=false
+
+# Copy the runtime
+COPY --from=installBundle --chown=1001:0 /opt/ol/wlp /opt/ol/wlp
+
+COPY --chown=1001:0 server-http-port-enabled.xml /config/server.xml
+
+# Create a new SCC layer
+RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \
+ && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache \
+ && find /opt/ol/wlp/output ! -perm -g=rwx -print0 | xargs -0 -r chmod g+rwx
diff --git a/releases/latest/full/Dockerfile.ubi10-micro.openjdk8 b/releases/latest/full/Dockerfile.ubi10-micro.openjdk8
new file mode 100644
index 00000000..4c6a9df2
--- /dev/null
+++ b/releases/latest/full/Dockerfile.ubi10-micro.openjdk8
@@ -0,0 +1,52 @@
+ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:kernel-slim-java8-openj9-ubi-micro
+
+# ubi-micro has no package manager; install unzip from ubi-minimal and copy it in
+FROM registry.access.redhat.com/ubi10/ubi-minimal AS builder
+RUN microdnf -y install unzip && microdnf clean all
+
+FROM $PARENT_IMAGE AS installBundle
+
+ARG VERBOSE=false
+ARG LIBERTY_VERSION=26.0.0.9
+ARG FEATURES_SHA=971f2f2434b57f39c8329ffc075ed26ba5e23742
+
+# If there is a local copy of the repository use that instead
+COPY resources/ /tmp/
+
+# We need unzip when using a local repo; copy it from ubi-minimal builder stage
+USER root
+COPY --from=builder /usr/bin/unzip /usr/bin/unzip
+USER 1001
+
+# Install all features
+RUN set -eux; \
+ if [ ! -f /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip ]; then \
+ wget -q https://repo1.maven.org/maven2/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json -O /tmp/features-$LIBERTY_VERSION.json; \
+ echo "$FEATURES_SHA /tmp/features-$LIBERTY_VERSION.json" > /tmp/features-$LIBERTY_VERSION.json.sha1; \
+ sha1sum -c /tmp/features-$LIBERTY_VERSION.json.sha1; \
+ else \
+ echo "$FEATURES_SHA /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip" > /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \
+ sha1sum -c /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip.sha1; \
+ mkdir /tmp/feature-repo-$LIBERTY_VERSION; \
+ unzip -d /tmp/feature-repo-$LIBERTY_VERSION /tmp/openliberty-MavenArtifact-$LIBERTY_VERSION.zip; \
+ cp /tmp/feature-repo-$LIBERTY_VERSION/io/openliberty/features/features/$LIBERTY_VERSION/features-$LIBERTY_VERSION.json /tmp; \
+ export FEATURE_LOCAL_REPO=/tmp/feature-repo-$LIBERTY_VERSION; \
+ export FEATURE_VERIFY=skip; \
+ fi; \
+ grep \"shortName\" /tmp/features-$LIBERTY_VERSION.json | sed -e 's/.* //' -e 's/,//' | xargs featureUtility installFeature --acceptLicense --noCache; \
+ rm -rf /output/workarea /output/logs; \
+ find /opt/ol/wlp ! -perm -g=rw -print0 | xargs -r -0 chmod g+rw;
+
+ARG PARENT_IMAGE=icr.io/appcafe/open-liberty:kernel-slim-java8-openj9-ubi-micro
+FROM $PARENT_IMAGE
+ARG VERBOSE=false
+
+# Copy the runtime
+COPY --from=installBundle --chown=1001:0 /opt/ol/wlp /opt/ol/wlp
+
+COPY --chown=1001:0 server-http-port-enabled.xml /config/server.xml
+
+# Create a new SCC layer
+RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \
+ && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache \
+ && find /opt/ol/wlp/output ! -perm -g=rwx -print0 | xargs -0 -r chmod g+rwx
diff --git a/releases/latest/full/Dockerfile.ubi10-minimal.ibmjava8 b/releases/latest/full/Dockerfile.ubi10-minimal.ibmjava8
index 4ec65dfd..bfc8c0d3 100644
--- a/releases/latest/full/Dockerfile.ubi10-minimal.ibmjava8
+++ b/releases/latest/full/Dockerfile.ubi10-minimal.ibmjava8
@@ -40,7 +40,7 @@ ARG VERBOSE=false
# Copy the runtime
COPY --from=installBundle --chown=1001:0 /opt/ol/wlp /opt/ol/wlp
-COPY --chown=1001:0 server.xml /config/
+COPY --chown=1001:0 server-http-port-enabled.xml /config/server.xml
# Create a new SCC layer
RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \
diff --git a/releases/latest/full/Dockerfile.ubi10-minimal.openjdk11 b/releases/latest/full/Dockerfile.ubi10-minimal.openjdk11
index 08ec0b9d..d36f1d3e 100644
--- a/releases/latest/full/Dockerfile.ubi10-minimal.openjdk11
+++ b/releases/latest/full/Dockerfile.ubi10-minimal.openjdk11
@@ -40,7 +40,7 @@ ARG VERBOSE=false
# Copy the runtime
COPY --from=installBundle --chown=1001:0 /opt/ol/wlp /opt/ol/wlp
-COPY --chown=1001:0 server.xml /config/
+COPY --chown=1001:0 server-http-port-enabled.xml /config/server.xml
# Create a new SCC layer
RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \
diff --git a/releases/latest/full/Dockerfile.ubi10-minimal.openjdk17 b/releases/latest/full/Dockerfile.ubi10-minimal.openjdk17
index b380e6af..bedcb7ec 100644
--- a/releases/latest/full/Dockerfile.ubi10-minimal.openjdk17
+++ b/releases/latest/full/Dockerfile.ubi10-minimal.openjdk17
@@ -40,7 +40,7 @@ ARG VERBOSE=false
# Copy the runtime
COPY --from=installBundle --chown=1001:0 /opt/ol/wlp /opt/ol/wlp
-COPY --chown=1001:0 server.xml /config/
+COPY --chown=1001:0 server-http-port-enabled.xml /config/server.xml
# Create a new SCC layer
RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \
diff --git a/releases/latest/full/Dockerfile.ubi10-minimal.openjdk21 b/releases/latest/full/Dockerfile.ubi10-minimal.openjdk21
index e544946c..0915cc9d 100644
--- a/releases/latest/full/Dockerfile.ubi10-minimal.openjdk21
+++ b/releases/latest/full/Dockerfile.ubi10-minimal.openjdk21
@@ -40,7 +40,7 @@ ARG VERBOSE=false
# Copy the runtime
COPY --from=installBundle --chown=1001:0 /opt/ol/wlp /opt/ol/wlp
-COPY --chown=1001:0 server.xml /config/
+COPY --chown=1001:0 server-http-port-enabled.xml /config/server.xml
# Create a new SCC layer
RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \
diff --git a/releases/latest/full/Dockerfile.ubi10-minimal.openjdk25 b/releases/latest/full/Dockerfile.ubi10-minimal.openjdk25
index e60928c1..1b2da468 100644
--- a/releases/latest/full/Dockerfile.ubi10-minimal.openjdk25
+++ b/releases/latest/full/Dockerfile.ubi10-minimal.openjdk25
@@ -40,7 +40,7 @@ ARG VERBOSE=false
# Copy the runtime
COPY --from=installBundle --chown=1001:0 /opt/ol/wlp /opt/ol/wlp
-COPY --chown=1001:0 server.xml /config/
+COPY --chown=1001:0 server-http-port-enabled.xml /config/server.xml
# Create a new SCC layer
RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \
diff --git a/releases/latest/full/Dockerfile.ubi10-minimal.openjdk8 b/releases/latest/full/Dockerfile.ubi10-minimal.openjdk8
index 337b806f..23fa44ce 100644
--- a/releases/latest/full/Dockerfile.ubi10-minimal.openjdk8
+++ b/releases/latest/full/Dockerfile.ubi10-minimal.openjdk8
@@ -40,7 +40,7 @@ ARG VERBOSE=false
# Copy the runtime
COPY --from=installBundle --chown=1001:0 /opt/ol/wlp /opt/ol/wlp
-COPY --chown=1001:0 server.xml /config/
+COPY --chown=1001:0 server-http-port-enabled.xml /config/server.xml
# Create a new SCC layer
RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \
diff --git a/releases/latest/full/Dockerfile.ubuntu.openjdk11 b/releases/latest/full/Dockerfile.ubuntu.openjdk11
index 49e7a100..360d5379 100644
--- a/releases/latest/full/Dockerfile.ubuntu.openjdk11
+++ b/releases/latest/full/Dockerfile.ubuntu.openjdk11
@@ -77,7 +77,8 @@ ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
LOG_DIR=/liberty/logs \
WLP_OUTPUT_DIR=/opt/ol/wlp/output \
WLP_SKIP_MAXPERMSIZE=true \
- OPENJ9_SCC=$OPENJ9_SCC
+ OPENJ9_SCC=$OPENJ9_SCC \
+ ENABLE_HTTP_PORT=true
# Configure Open Liberty
RUN /opt/ol/wlp/bin/server create --template=javaee8 \
diff --git a/releases/latest/full/Dockerfile.ubuntu.openjdk17 b/releases/latest/full/Dockerfile.ubuntu.openjdk17
index 41656199..b4b35af4 100644
--- a/releases/latest/full/Dockerfile.ubuntu.openjdk17
+++ b/releases/latest/full/Dockerfile.ubuntu.openjdk17
@@ -77,7 +77,8 @@ ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
LOG_DIR=/liberty/logs \
WLP_OUTPUT_DIR=/opt/ol/wlp/output \
WLP_SKIP_MAXPERMSIZE=true \
- OPENJ9_SCC=$OPENJ9_SCC
+ OPENJ9_SCC=$OPENJ9_SCC \
+ ENABLE_HTTP_PORT=true
# Configure Open Liberty
RUN /opt/ol/wlp/bin/server create --template=javaee8 \
diff --git a/releases/latest/full/Dockerfile.ubuntu.openjdk8 b/releases/latest/full/Dockerfile.ubuntu.openjdk8
index 09250eec..476d68ad 100644
--- a/releases/latest/full/Dockerfile.ubuntu.openjdk8
+++ b/releases/latest/full/Dockerfile.ubuntu.openjdk8
@@ -77,7 +77,8 @@ ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
LOG_DIR=/liberty/logs \
WLP_OUTPUT_DIR=/opt/ol/wlp/output \
WLP_SKIP_MAXPERMSIZE=true \
- OPENJ9_SCC=$OPENJ9_SCC
+ OPENJ9_SCC=$OPENJ9_SCC \
+ ENABLE_HTTP_PORT=true
# Configure Open Liberty
RUN /opt/ol/wlp/bin/server create --template=javaee8 \
diff --git a/releases/latest/full/helpers/build/populate_scc.sh b/releases/latest/full/helpers/build/populate_scc.sh
index 1012a07a..01e122d9 100755
--- a/releases/latest/full/helpers/build/populate_scc.sh
+++ b/releases/latest/full/helpers/build/populate_scc.sh
@@ -1,15 +1,28 @@
#!/bin/bash
. /opt/ol/helpers/build/internal/logger.sh
+# Use curl/wget to warm endpoints
+if command -v curl > /dev/null 2>&1; then
+ http_get() { curl --silent --output /dev/null --show-error --fail --max-time 5 --insecure "$1"; }
+else
+ http_get() { wget -q --no-check-certificate -O /dev/null -T 5 "$1"; }
+fi
+
set -Eeo pipefail
SCC_SIZE="80m" # Default size of the SCC layer.
ITERATIONS=2 # Number of iterations to run to populate it.
TRIM_SCC=yes # Trim the SCC to eliminate any wasted space.
WARM_ENDPOINT=true
-WARM_ENDPOINT_URL=localhost:9080/
WARM_OPENAPI_ENDPOINT=true
-WARM_OPENAPI_ENDPOINT_URL=localhost:9080/openapi
+
+# Default warm URLs based on ENABLE_HTTP_PORT, with HTTP_PORT/HTTPS_PORT overrides.
+if [ "$ENABLE_HTTP_PORT" == "true" ]; then
+ WARM_ENDPOINT_URL="http://localhost:${HTTP_PORT:-9080}/"
+else
+ WARM_ENDPOINT_URL="https://localhost:${HTTPS_PORT:-9443}/"
+fi
+WARM_OPENAPI_ENDPOINT_URL="${WARM_ENDPOINT_URL}openapi"
# If this directory exists and has at least ug=rwx permissions, assume the base image includes an SCC called 'openj9_system_scc' and build on it.
# If not, build on our own SCC.
@@ -81,10 +94,10 @@ do
-s Size of the SCC in megabytes (m suffix required). (Default: $SCC_SIZE)
-t Trim the SCC to eliminate most of the free space, if any.
-d Don't trim the SCC.
- -w Use curl to warm an endpoint during SCC creation. (Default: $WARM_ENDPOINT)
+ -w Use curl/wget to warm an endpoint during SCC creation. (Default: $WARM_ENDPOINT)
-c Do not warm an endpoint during SCC creation.
-u The URL endpoint to warm during SCC creation. (Default: $WARM_ENDPOINT_URL)
- -m Use curl to warm the openapi endpoint during SCC creation. (Default: $WARM_OPENAPI_ENDPOINT)
+ -m Use curl/wget to warm the openapi endpoint during SCC creation. (Default: $WARM_OPENAPI_ENDPOINT)
-l Do not warm the openapi endpoint during SCC creation.
-o The Open API URL endpoint to warm during SCC creation. (Default: $WARM_ENDPOINT_OPENAPI_URL)
@@ -117,11 +130,11 @@ then
if [ ${WARM_ENDPOINT} == true ]
then
- curl --silent --output /dev/null --show-error --fail --max-time 5 ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing"
+ http_get ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing"
fi
if [ ${WARM_OPENAPI_ENDPOINT} == true ]
then
- curl --silent --output /dev/null --show-error --fail --max-time 5 ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing"
+ http_get ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing"
fi
/opt/ol/wlp/bin/server stop
@@ -152,11 +165,11 @@ do
if [ ${WARM_ENDPOINT} == true ]
then
- curl --silent --output /dev/null --show-error --fail --max-time 5 ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing"
+ http_get ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing"
fi
if [ ${WARM_OPENAPI_ENDPOINT} == true ]
then
- curl --silent --output /dev/null --show-error --fail --max-time 5 ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing"
+ http_get ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing"
fi
/opt/ol/wlp/bin/server stop
diff --git a/releases/latest/full/server-http-port-enabled.xml b/releases/latest/full/server-http-port-enabled.xml
new file mode 100644
index 00000000..120800ea
--- /dev/null
+++ b/releases/latest/full/server-http-port-enabled.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+ javaee-8.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/releases/latest/full/server.xml b/releases/latest/full/server.xml
index 120800ea..8b57a2bd 100644
--- a/releases/latest/full/server.xml
+++ b/releases/latest/full/server.xml
@@ -25,7 +25,7 @@
diff --git a/releases/latest/kernel-slim/Dockerfile.ubi.ibmjava8 b/releases/latest/kernel-slim/Dockerfile.ubi.ibmjava8
index 758d21c1..03adfa8b 100644
--- a/releases/latest/kernel-slim/Dockerfile.ubi.ibmjava8
+++ b/releases/latest/kernel-slim/Dockerfile.ubi.ibmjava8
@@ -99,7 +99,8 @@ ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
LOG_DIR=/liberty/logs \
WLP_OUTPUT_DIR=/opt/ol/wlp/output \
WLP_SKIP_MAXPERMSIZE=true \
- OPENJ9_SCC=$OPENJ9_SCC
+ OPENJ9_SCC=$OPENJ9_SCC \
+ ENABLE_HTTP_PORT=true
# Configure Open Liberty
RUN /opt/ol/wlp/bin/server create \
diff --git a/releases/latest/kernel-slim/Dockerfile.ubi.openjdk11 b/releases/latest/kernel-slim/Dockerfile.ubi.openjdk11
index d7edac51..7705049e 100644
--- a/releases/latest/kernel-slim/Dockerfile.ubi.openjdk11
+++ b/releases/latest/kernel-slim/Dockerfile.ubi.openjdk11
@@ -99,7 +99,8 @@ ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
LOG_DIR=/liberty/logs \
WLP_OUTPUT_DIR=/opt/ol/wlp/output \
WLP_SKIP_MAXPERMSIZE=true \
- OPENJ9_SCC=$OPENJ9_SCC
+ OPENJ9_SCC=$OPENJ9_SCC \
+ ENABLE_HTTP_PORT=true
# Configure Open Liberty
RUN /opt/ol/wlp/bin/server create \
diff --git a/releases/latest/kernel-slim/Dockerfile.ubi.openjdk17 b/releases/latest/kernel-slim/Dockerfile.ubi.openjdk17
index 5288e978..b5757284 100644
--- a/releases/latest/kernel-slim/Dockerfile.ubi.openjdk17
+++ b/releases/latest/kernel-slim/Dockerfile.ubi.openjdk17
@@ -99,7 +99,8 @@ ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
LOG_DIR=/liberty/logs \
WLP_OUTPUT_DIR=/opt/ol/wlp/output \
WLP_SKIP_MAXPERMSIZE=true \
- OPENJ9_SCC=$OPENJ9_SCC
+ OPENJ9_SCC=$OPENJ9_SCC \
+ ENABLE_HTTP_PORT=true
# Configure Open Liberty
RUN /opt/ol/wlp/bin/server create \
diff --git a/releases/latest/kernel-slim/Dockerfile.ubi.openjdk8 b/releases/latest/kernel-slim/Dockerfile.ubi.openjdk8
index 4d5e8cd3..171cfd6d 100644
--- a/releases/latest/kernel-slim/Dockerfile.ubi.openjdk8
+++ b/releases/latest/kernel-slim/Dockerfile.ubi.openjdk8
@@ -99,7 +99,8 @@ ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
LOG_DIR=/liberty/logs \
WLP_OUTPUT_DIR=/opt/ol/wlp/output \
WLP_SKIP_MAXPERMSIZE=true \
- OPENJ9_SCC=$OPENJ9_SCC
+ OPENJ9_SCC=$OPENJ9_SCC \
+ ENABLE_HTTP_PORT=true
# Configure Open Liberty
RUN /opt/ol/wlp/bin/server create \
diff --git a/releases/latest/kernel-slim/Dockerfile.ubi10-micro.ibmjava8 b/releases/latest/kernel-slim/Dockerfile.ubi10-micro.ibmjava8
new file mode 100644
index 00000000..930df335
--- /dev/null
+++ b/releases/latest/kernel-slim/Dockerfile.ubi10-micro.ibmjava8
@@ -0,0 +1,177 @@
+# This relies on a base image which needs to be built seperately
+# curl https://raw.githubusercontent.com/ibmruntimes/ci.docker/main/ibmjava/8/jre/ubi-min/Dockerfile -o java/Dockerfile.ubi10.minimal
+# The above file needs editing before it is built:
+# This changes to a UBI10 base, and corrects the microdnf command to work on UBI10.
+# $> sed -i -e 's/ubi8/ubi10/' -e 's/microdnf install/microdnf -y install/' -e 's/microdnf update/microdnf update -y/' Dockerfile.ubi10-minimal.ibmjava8
+# $> rm ./java/Dockerfile.ubi10.minimal.bak
+# Then build and tag as 'ibmjava:10-ubi'
+# $> docker build -t ibmjava:10-ubi -f ./java/Dockerfile.ubi10.minimal java
+
+FROM ibmjava:10-ubi AS builder
+
+USER root
+
+ARG LIBERTY_VERSION=26.0.0.9
+ARG LIBERTY_SHA=4ec644ee059a8d54a26c326763fd404a6baf1570
+ARG LIBERTY_DOWNLOAD_URL=https://repo1.maven.org/maven2/io/openliberty/openliberty-kernel/$LIBERTY_VERSION/openliberty-kernel-$LIBERTY_VERSION.zip
+
+ARG VERBOSE=false
+
+# If there is a local copy of the image use that instead
+COPY resources/ /tmp/
+
+# Install Open Liberty
+RUN microdnf -y install shadow-utils wget unzip openssl \
+ && if [ ! -f /tmp/wlp.zip ]; then wget -q $LIBERTY_DOWNLOAD_URL -U UA-Open-Liberty-Docker -O /tmp/wlp.zip; fi \
+ && echo "$LIBERTY_SHA /tmp/wlp.zip" > /tmp/wlp.zip.sha1 \
+ && sha1sum -c /tmp/wlp.zip.sha1 \
+ && chmod -R u+x /usr/bin \
+ && unzip -q /tmp/wlp.zip -d /opt/ol \
+ && mkdir -p /licenses \
+ && cp /opt/ol/wlp/LICENSE /licenses/ \
+# && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \
+ && chown -R 1001:0 /opt/ol/wlp \
+ && chmod -R g+rw /opt/ol/wlp
+
+# Install dumb-init
+RUN set -eux; \
+ ARCH="$(uname -m)"; \
+ case "${ARCH}" in \
+ aarch64|arm64) \
+ DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_aarch64'; \
+ DUMB_INIT_SHA256=b7d648f97154a99c539b63c55979cd29f005f88430fb383007fe3458340b795e; \
+ ;; \
+ amd64|x86_64) \
+ DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_x86_64'; \
+ DUMB_INIT_SHA256=e874b55f3279ca41415d290c512a7ba9d08f98041b28ae7c2acb19a545f1c4df; \
+ ;; \
+ ppc64el|ppc64le) \
+ DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_ppc64le'; \
+ DUMB_INIT_SHA256=3d15e80e29f0f4fa1fc686b00613a2220bc37e83a35283d4b4cca1fbd0a5609f; \
+ ;; \
+ s390x) \
+ DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_s390x'; \
+ DUMB_INIT_SHA256=47e4601b152fc6dcb1891e66c30ecc62a2939fd7ffd1515a7c30f281cfec53b7; \
+ ;;\
+ *) \
+ echo "Unsupported arch: ${ARCH}"; \
+ exit 1; \
+ ;; \
+ esac; \
+ curl -LfsSo /usr/bin/dumb-init ${DUMB_INIT_URL}; \
+ echo "${DUMB_INIT_SHA256} */usr/bin/dumb-init" | sha256sum -c -; \
+ chmod +x /usr/bin/dumb-init;
+
+FROM icr.io/appcafe/ibmjava:8-jre-ubi10-micro
+
+USER root
+
+ARG LIBERTY_VERSION=26.0.0.9
+ARG LIBERTY_BUILD_LABEL=cl260920260824-0859
+
+ARG OPENJ9_SCC=true
+ARG VERBOSE=false
+
+LABEL org.opencontainers.image.authors="Leo Christy Jesuraj, Iain Lewis, Melissa Lee, Kirby Chin" \
+ org.opencontainers.image.vendor="Open Liberty" \
+ org.opencontainers.image.url="https://openliberty.io/" \
+ org.opencontainers.image.source="https://github.com/OpenLiberty/ci.docker" \
+ org.opencontainers.image.version="$LIBERTY_VERSION" \
+ org.opencontainers.image.revision="$LIBERTY_BUILD_LABEL" \
+ liberty.version="$LIBERTY_VERSION" \
+ io.openliberty.version="$LIBERTY_VERSION" \
+ vendor="Open Liberty" \
+ name="Open Liberty" \
+ version="$LIBERTY_VERSION" \
+ summary="Image for Open Liberty with IBM's Java and UBI 10 micro" \
+ description="This image contains the Open Liberty runtime with IBM's Java and Red Hat UBI 10 micro as the base OS. For more information on this image please see https://github.com/OpenLiberty/ci.docker#building-an-application-image"
+
+COPY NOTICES /opt/ol/NOTICES
+COPY helpers /opt/ol/helpers
+COPY fixes/ /opt/ol/fixes/
+
+# Add default user 1001 and create wlp with right user/permissions before copying
+RUN echo "1001:x:1001:0::/home/1001:/sbin/nologin" >> /etc/passwd \
+ && mkdir -p /home/1001 \
+ && chown 1001:0 /home/1001 \
+ && mkdir -p /opt/ol/wlp \
+ && chown -R 1001:0 /opt/ol/wlp \
+ && chmod -R g+rw /opt/ol/wlp
+
+COPY --from=builder /usr/bin/dumb-init /usr/bin/dumb-init
+COPY --from=builder /usr/bin/awk /usr/bin/awk
+COPY --from=builder /usr/bin/wget /usr/bin/wget
+
+COPY --from=builder /usr/lib64/libpsl.so* /usr/lib64/
+COPY --from=builder /usr/lib64/libmpfr.so* /usr/lib64/
+COPY --from=builder /usr/lib64/libreadline.so* /usr/lib64/
+COPY --from=builder /usr/lib64/libgnutls.so* /usr/lib64/
+COPY --from=builder /usr/lib64/libidn2.so* /usr/lib64/
+COPY --from=builder /usr/lib64/libunistring.so* /usr/lib64/
+COPY --from=builder /usr/lib64/libuuid.so* /usr/lib64/
+
+# Copy the runtime and licenses
+COPY --from=builder --chown=1001:0 /opt/ol/wlp /opt/ol/wlp
+COPY --from=builder /licenses /licenses
+
+# Set Path Shortcuts
+ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
+ LOG_DIR=/liberty/logs \
+ WLP_OUTPUT_DIR=/opt/ol/wlp/output \
+ WLP_SKIP_MAXPERMSIZE=true \
+ OPENJ9_SCC=$OPENJ9_SCC
+
+# Configure Open Liberty
+RUN /opt/ol/wlp/bin/server create \
+ && rm -rf $WLP_OUTPUT_DIR/.classCache /output/workarea \
+ && rm -rf /opt/ol/wlp/usr/servers/defaultServer/server.env
+
+# Create symlinks && set permissions for non-root user
+RUN mkdir /logs \
+ && chown -R 1001:0 /logs \
+ && chmod -R g+rw /logs \
+ && mkdir -p /opt/ol/wlp/usr/shared/resources/lib.index.cache \
+ && ln -s /opt/ol/wlp/usr/shared/resources/lib.index.cache /lib.index.cache \
+ && mkdir -p $WLP_OUTPUT_DIR/defaultServer \
+ && ln -s $WLP_OUTPUT_DIR/defaultServer /output \
+ && ln -s /opt/ol/wlp/usr/servers/defaultServer /config \
+ && mkdir -p /config/configDropins/defaults \
+ && mkdir -p /config/configDropins/overrides \
+ && ln -s /opt/ol/wlp /liberty \
+ && ln -s /opt/ol/fixes /fixes \
+ && echo "" > /config/configDropins/defaults/open-default-port.xml \
+ && chown -R 1001:0 /config \
+ && chmod -R g+rw /config \
+ && chown -R 1001:0 /opt/ol/wlp/usr \
+ && chmod -R g+rw /opt/ol/wlp/usr \
+ && chown -R 1001:0 /opt/ol/wlp/output \
+ && chmod -R g+rw /opt/ol/wlp/output \
+ && chown -R 1001:0 /opt/ol/helpers \
+ && chmod -R ug+rwx /opt/ol/helpers \
+ && chown -R 1001:0 /opt/ol/fixes \
+ && chmod -R g+rwx /opt/ol/fixes \
+ && mkdir /etc/wlp \
+ && chown -R 1001:0 /etc/wlp \
+ && chmod -R g+rw /etc/wlp \
+ && ln -s /logs /liberty/logs \
+ && mkdir /serviceability \
+ && chown -R 1001:0 /serviceability \
+ && chmod -R g+rw /serviceability
+
+# Create a new SCC layer
+RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \
+ && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache /output/workarea \
+ && chown -R 1001:0 /opt/ol/wlp/output \
+ && chmod -R g+rwx /opt/ol/wlp/output
+
+#These settings are needed so that we can run as a different user than 1001 after server warmup
+ENV RANDFILE=/tmp/.rnd \
+ IBM_JAVA_OPTIONS="-Xshareclasses:name=liberty,readonly,nonfatal,cacheDir=/output/.classCache/ -Dosgi.checkConfiguration=false ${IBM_JAVA_OPTIONS}"
+
+USER 1001
+
+EXPOSE 9443
+
+ENTRYPOINT ["/opt/ol/helpers/runtime/docker-server.sh"]
+CMD ["/opt/ol/wlp/bin/server", "run", "defaultServer"]
+
diff --git a/releases/latest/kernel-slim/Dockerfile.ubi10-micro.openjdk11 b/releases/latest/kernel-slim/Dockerfile.ubi10-micro.openjdk11
new file mode 100755
index 00000000..71bdb7c0
--- /dev/null
+++ b/releases/latest/kernel-slim/Dockerfile.ubi10-micro.openjdk11
@@ -0,0 +1,164 @@
+FROM registry.access.redhat.com/ubi10/ubi-minimal:latest AS builder
+
+USER root
+
+ARG LIBERTY_VERSION=26.0.0.9
+ARG LIBERTY_SHA=4ec644ee059a8d54a26c326763fd404a6baf1570
+ARG LIBERTY_DOWNLOAD_URL=https://repo1.maven.org/maven2/io/openliberty/openliberty-kernel/$LIBERTY_VERSION/openliberty-kernel-$LIBERTY_VERSION.zip
+
+ARG VERBOSE=false
+
+# If there is a local copy of the image use that instead
+COPY resources/ /tmp/
+
+# Install Open Liberty
+RUN microdnf -y install shadow-utils wget unzip openssl \
+ && if [ ! -f /tmp/wlp.zip ]; then wget -q $LIBERTY_DOWNLOAD_URL -U UA-Open-Liberty-Docker -O /tmp/wlp.zip; fi \
+ && echo "$LIBERTY_SHA /tmp/wlp.zip" > /tmp/wlp.zip.sha1 \
+ && sha1sum -c /tmp/wlp.zip.sha1 \
+ && chmod -R u+x /usr/bin \
+ && unzip -q /tmp/wlp.zip -d /opt/ol \
+ && mkdir -p /licenses \
+ && cp /opt/ol/wlp/LICENSE /licenses/ \
+ && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \
+ && chown -R 1001:0 /opt/ol/wlp \
+ && chmod -R g+rw /opt/ol/wlp
+
+# Install dumb-init
+RUN set -eux; \
+ ARCH="$(uname -m)"; \
+ case "${ARCH}" in \
+ aarch64|arm64) \
+ DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_aarch64'; \
+ DUMB_INIT_SHA256=b7d648f97154a99c539b63c55979cd29f005f88430fb383007fe3458340b795e; \
+ ;; \
+ amd64|x86_64) \
+ DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_x86_64'; \
+ DUMB_INIT_SHA256=e874b55f3279ca41415d290c512a7ba9d08f98041b28ae7c2acb19a545f1c4df; \
+ ;; \
+ ppc64el|ppc64le) \
+ DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_ppc64le'; \
+ DUMB_INIT_SHA256=3d15e80e29f0f4fa1fc686b00613a2220bc37e83a35283d4b4cca1fbd0a5609f; \
+ ;; \
+ s390x) \
+ DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_s390x'; \
+ DUMB_INIT_SHA256=47e4601b152fc6dcb1891e66c30ecc62a2939fd7ffd1515a7c30f281cfec53b7; \
+ ;;\
+ *) \
+ echo "Unsupported arch: ${ARCH}"; \
+ exit 1; \
+ ;; \
+ esac; \
+ curl -LfsSo /usr/bin/dumb-init ${DUMB_INIT_URL}; \
+ echo "${DUMB_INIT_SHA256} */usr/bin/dumb-init" | sha256sum -c -; \
+ chmod +x /usr/bin/dumb-init;
+
+FROM icr.io/appcafe/ibm-semeru-runtimes:open-11-jre-ubi10-micro
+
+USER root
+
+ARG LIBERTY_VERSION=26.0.0.9
+ARG LIBERTY_BUILD_LABEL=cl260920260824-0859
+
+ARG OPENJ9_SCC=true
+ARG VERBOSE=false
+
+LABEL org.opencontainers.image.authors="Leo Christy Jesuraj, Iain Lewis, Melissa Lee, Kirby Chin" \
+ org.opencontainers.image.vendor="Open Liberty" \
+ org.opencontainers.image.url="https://openliberty.io/" \
+ org.opencontainers.image.source="https://github.com/OpenLiberty/ci.docker" \
+ org.opencontainers.image.version="$LIBERTY_VERSION" \
+ org.opencontainers.image.revision="$LIBERTY_BUILD_LABEL" \
+ liberty.version="$LIBERTY_VERSION" \
+ io.openliberty.version="$LIBERTY_VERSION" \
+ vendor="Open Liberty" \
+ name="Open Liberty" \
+ version="$LIBERTY_VERSION" \
+ summary="Image for Open Liberty with IBM Semeru Runtime Open Edition OpenJDK 11 with OpenJ9 and UBI 10 micro" \
+ description="This image contains the Open Liberty runtime with IBM Semeru Runtime Open Edition OpenJDK 11 with OpenJ9 and Red Hat UBI 10 micro as the base OS. For more information on this image please see https://github.com/OpenLiberty/ci.docker#building-an-application-image"
+
+COPY NOTICES /opt/ol/NOTICES
+COPY helpers /opt/ol/helpers
+COPY fixes/ /opt/ol/fixes/
+
+# Add default user 1001 and create wlp with right user/permissions before copying
+RUN echo "1001:x:1001:0::/home/1001:/sbin/nologin" >> /etc/passwd \
+ && mkdir -p /home/1001 \
+ && chown 1001:0 /home/1001 \
+ && mkdir -p /opt/ol/wlp \
+ && chown -R 1001:0 /opt/ol/wlp \
+ && chmod -R g+rw /opt/ol/wlp
+
+COPY --from=builder /usr/bin/dumb-init /usr/bin/dumb-init
+COPY --from=builder /usr/bin/awk /usr/bin/awk
+COPY --from=builder /usr/bin/wget /usr/bin/wget
+
+COPY --from=builder /usr/lib64/libpsl.so* /usr/lib64/
+COPY --from=builder /usr/lib64/libmpfr.so* /usr/lib64/
+
+# Copy the runtime and licenses
+COPY --from=builder --chown=1001:0 /opt/ol/wlp /opt/ol/wlp
+COPY --from=builder /licenses /licenses
+
+# Set Path Shortcuts
+ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
+ LOG_DIR=/liberty/logs \
+ WLP_OUTPUT_DIR=/opt/ol/wlp/output \
+ WLP_SKIP_MAXPERMSIZE=true \
+ OPENJ9_SCC=$OPENJ9_SCC
+
+# Configure Open Liberty
+RUN /opt/ol/wlp/bin/server create \
+ && rm -rf $WLP_OUTPUT_DIR/.classCache /output/workarea \
+ && rm -rf /opt/ol/wlp/usr/servers/defaultServer/server.env
+
+# Create symlinks && set permissions for non-root user
+RUN mkdir /logs \
+ && chown -R 1001:0 /logs \
+ && chmod -R g+rw /logs \
+ && mkdir -p /opt/ol/wlp/usr/shared/resources/lib.index.cache \
+ && ln -s /opt/ol/wlp/usr/shared/resources/lib.index.cache /lib.index.cache \
+ && mkdir -p $WLP_OUTPUT_DIR/defaultServer \
+ && ln -s $WLP_OUTPUT_DIR/defaultServer /output \
+ && ln -s /opt/ol/wlp/usr/servers/defaultServer /config \
+ && mkdir -p /config/configDropins/defaults \
+ && mkdir -p /config/configDropins/overrides \
+ && ln -s /opt/ol/wlp /liberty \
+ && ln -s /opt/ol/fixes /fixes \
+ && echo "" > /config/configDropins/defaults/open-default-port.xml \
+ && chown -R 1001:0 /config \
+ && chmod -R g+rw /config \
+ && chown -R 1001:0 /opt/ol/wlp/usr \
+ && chmod -R g+rw /opt/ol/wlp/usr \
+ && chown -R 1001:0 /opt/ol/wlp/output \
+ && chmod -R g+rw /opt/ol/wlp/output \
+ && chown -R 1001:0 /opt/ol/helpers \
+ && chmod -R ug+rwx /opt/ol/helpers \
+ && chown -R 1001:0 /opt/ol/fixes \
+ && chmod -R g+rwx /opt/ol/fixes \
+ && mkdir /etc/wlp \
+ && chown -R 1001:0 /etc/wlp \
+ && chmod -R g+rw /etc/wlp \
+ && if [ -e /etc/instanton.ld.so.cache ]; then chmod g+w /etc/ld.so.cache; fi \
+ && ln -s /logs /liberty/logs \
+ && mkdir /serviceability \
+ && chown -R 1001:0 /serviceability \
+ && chmod -R g+rw /serviceability
+
+# Create a new SCC layer
+RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \
+ && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache /output/workarea \
+ && chown -R 1001:0 /opt/ol/wlp/output \
+ && chmod -R g+rwx /opt/ol/wlp/output
+
+#These settings are needed so that we can run as a different user than 1001 after server warmup
+ENV RANDFILE=/tmp/.rnd \
+ OPENJ9_JAVA_OPTIONS="-XX:+IgnoreUnrecognizedVMOptions -XX:+IdleTuningGcOnIdle -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,readonly,nonFatal -Dosgi.checkConfiguration=false"
+
+USER 1001
+
+EXPOSE 9443
+
+ENTRYPOINT ["/opt/ol/helpers/runtime/docker-server.sh"]
+CMD ["/opt/ol/wlp/bin/server", "run", "defaultServer"]
+
diff --git a/releases/latest/kernel-slim/Dockerfile.ubi10-micro.openjdk17 b/releases/latest/kernel-slim/Dockerfile.ubi10-micro.openjdk17
new file mode 100755
index 00000000..bcba2940
--- /dev/null
+++ b/releases/latest/kernel-slim/Dockerfile.ubi10-micro.openjdk17
@@ -0,0 +1,164 @@
+FROM registry.access.redhat.com/ubi10/ubi-minimal:latest AS builder
+
+USER root
+
+ARG LIBERTY_VERSION=26.0.0.9
+ARG LIBERTY_SHA=4ec644ee059a8d54a26c326763fd404a6baf1570
+ARG LIBERTY_DOWNLOAD_URL=https://repo1.maven.org/maven2/io/openliberty/openliberty-kernel/$LIBERTY_VERSION/openliberty-kernel-$LIBERTY_VERSION.zip
+
+ARG VERBOSE=false
+
+# If there is a local copy of the image use that instead
+COPY resources/ /tmp/
+
+# Install Open Liberty
+RUN microdnf -y install shadow-utils wget unzip openssl \
+ && if [ ! -f /tmp/wlp.zip ]; then wget -q $LIBERTY_DOWNLOAD_URL -U UA-Open-Liberty-Docker -O /tmp/wlp.zip; fi \
+ && echo "$LIBERTY_SHA /tmp/wlp.zip" > /tmp/wlp.zip.sha1 \
+ && sha1sum -c /tmp/wlp.zip.sha1 \
+ && chmod -R u+x /usr/bin \
+ && unzip -q /tmp/wlp.zip -d /opt/ol \
+ && mkdir -p /licenses \
+ && cp /opt/ol/wlp/LICENSE /licenses/ \
+ && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \
+ && chown -R 1001:0 /opt/ol/wlp \
+ && chmod -R g+rw /opt/ol/wlp
+
+# Install dumb-init
+RUN set -eux; \
+ ARCH="$(uname -m)"; \
+ case "${ARCH}" in \
+ aarch64|arm64) \
+ DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_aarch64'; \
+ DUMB_INIT_SHA256=b7d648f97154a99c539b63c55979cd29f005f88430fb383007fe3458340b795e; \
+ ;; \
+ amd64|x86_64) \
+ DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_x86_64'; \
+ DUMB_INIT_SHA256=e874b55f3279ca41415d290c512a7ba9d08f98041b28ae7c2acb19a545f1c4df; \
+ ;; \
+ ppc64el|ppc64le) \
+ DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_ppc64le'; \
+ DUMB_INIT_SHA256=3d15e80e29f0f4fa1fc686b00613a2220bc37e83a35283d4b4cca1fbd0a5609f; \
+ ;; \
+ s390x) \
+ DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_s390x'; \
+ DUMB_INIT_SHA256=47e4601b152fc6dcb1891e66c30ecc62a2939fd7ffd1515a7c30f281cfec53b7; \
+ ;;\
+ *) \
+ echo "Unsupported arch: ${ARCH}"; \
+ exit 1; \
+ ;; \
+ esac; \
+ curl -LfsSo /usr/bin/dumb-init ${DUMB_INIT_URL}; \
+ echo "${DUMB_INIT_SHA256} */usr/bin/dumb-init" | sha256sum -c -; \
+ chmod +x /usr/bin/dumb-init;
+
+FROM icr.io/appcafe/ibm-semeru-runtimes:open-17-jre-ubi10-micro
+
+USER root
+
+ARG LIBERTY_VERSION=26.0.0.9
+ARG LIBERTY_BUILD_LABEL=cl260920260824-0859
+
+ARG OPENJ9_SCC=true
+ARG VERBOSE=false
+
+LABEL org.opencontainers.image.authors="Leo Christy Jesuraj, Iain Lewis, Melissa Lee, Kirby Chin" \
+ org.opencontainers.image.vendor="Open Liberty" \
+ org.opencontainers.image.url="https://openliberty.io/" \
+ org.opencontainers.image.source="https://github.com/OpenLiberty/ci.docker" \
+ org.opencontainers.image.version="$LIBERTY_VERSION" \
+ org.opencontainers.image.revision="$LIBERTY_BUILD_LABEL" \
+ liberty.version="$LIBERTY_VERSION" \
+ io.openliberty.version="$LIBERTY_VERSION" \
+ vendor="Open Liberty" \
+ name="Open Liberty" \
+ version="$LIBERTY_VERSION" \
+ summary="Image for Open Liberty with IBM Semeru Runtime Open Edition OpenJDK 17 with OpenJ9 and UBI 10 micro" \
+ description="This image contains the Open Liberty runtime with IBM Semeru Runtime Open Edition OpenJDK 17 with OpenJ9 and Red Hat UBI 10 micro as the base OS. For more information on this image please see https://github.com/OpenLiberty/ci.docker#building-an-application-image"
+
+COPY NOTICES /opt/ol/NOTICES
+COPY helpers /opt/ol/helpers
+COPY fixes/ /opt/ol/fixes/
+
+# Add default user 1001 and create wlp with right user/permissions before copying
+RUN echo "1001:x:1001:0::/home/1001:/sbin/nologin" >> /etc/passwd \
+ && mkdir -p /home/1001 \
+ && chown 1001:0 /home/1001 \
+ && mkdir -p /opt/ol/wlp \
+ && chown -R 1001:0 /opt/ol/wlp \
+ && chmod -R g+rw /opt/ol/wlp
+
+COPY --from=builder /usr/bin/dumb-init /usr/bin/dumb-init
+COPY --from=builder /usr/bin/awk /usr/bin/awk
+COPY --from=builder /usr/bin/wget /usr/bin/wget
+
+COPY --from=builder /usr/lib64/libpsl.so* /usr/lib64/
+COPY --from=builder /usr/lib64/libmpfr.so* /usr/lib64/
+
+# Copy the runtime and licenses
+COPY --from=builder --chown=1001:0 /opt/ol/wlp /opt/ol/wlp
+COPY --from=builder /licenses /licenses
+
+# Set Path Shortcuts
+ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
+ LOG_DIR=/liberty/logs \
+ WLP_OUTPUT_DIR=/opt/ol/wlp/output \
+ WLP_SKIP_MAXPERMSIZE=true \
+ OPENJ9_SCC=$OPENJ9_SCC
+
+# Configure Open Liberty
+RUN /opt/ol/wlp/bin/server create \
+ && rm -rf $WLP_OUTPUT_DIR/.classCache /output/workarea \
+ && rm -rf /opt/ol/wlp/usr/servers/defaultServer/server.env
+
+# Create symlinks && set permissions for non-root user
+RUN mkdir /logs \
+ && chown -R 1001:0 /logs \
+ && chmod -R g+rw /logs \
+ && mkdir -p /opt/ol/wlp/usr/shared/resources/lib.index.cache \
+ && ln -s /opt/ol/wlp/usr/shared/resources/lib.index.cache /lib.index.cache \
+ && mkdir -p $WLP_OUTPUT_DIR/defaultServer \
+ && ln -s $WLP_OUTPUT_DIR/defaultServer /output \
+ && ln -s /opt/ol/wlp/usr/servers/defaultServer /config \
+ && mkdir -p /config/configDropins/defaults \
+ && mkdir -p /config/configDropins/overrides \
+ && ln -s /opt/ol/wlp /liberty \
+ && ln -s /opt/ol/fixes /fixes \
+ && echo "" > /config/configDropins/defaults/open-default-port.xml \
+ && chown -R 1001:0 /config \
+ && chmod -R g+rw /config \
+ && chown -R 1001:0 /opt/ol/wlp/usr \
+ && chmod -R g+rw /opt/ol/wlp/usr \
+ && chown -R 1001:0 /opt/ol/wlp/output \
+ && chmod -R g+rw /opt/ol/wlp/output \
+ && chown -R 1001:0 /opt/ol/helpers \
+ && chmod -R ug+rwx /opt/ol/helpers \
+ && chown -R 1001:0 /opt/ol/fixes \
+ && chmod -R g+rwx /opt/ol/fixes \
+ && mkdir /etc/wlp \
+ && chown -R 1001:0 /etc/wlp \
+ && chmod -R g+rw /etc/wlp \
+ && if [ -e /etc/instanton.ld.so.cache ]; then chmod g+w /etc/ld.so.cache; fi \
+ && ln -s /logs /liberty/logs \
+ && mkdir /serviceability \
+ && chown -R 1001:0 /serviceability \
+ && chmod -R g+rw /serviceability
+
+# Create a new SCC layer
+RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \
+ && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache /output/workarea \
+ && chown -R 1001:0 /opt/ol/wlp/output \
+ && chmod -R g+rwx /opt/ol/wlp/output
+
+#These settings are needed so that we can run as a different user than 1001 after server warmup
+ENV RANDFILE=/tmp/.rnd \
+ OPENJ9_JAVA_OPTIONS="-XX:+IgnoreUnrecognizedVMOptions -XX:+IdleTuningGcOnIdle -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,readonly,nonFatal -Dosgi.checkConfiguration=false"
+
+USER 1001
+
+EXPOSE 9443
+
+ENTRYPOINT ["/opt/ol/helpers/runtime/docker-server.sh"]
+CMD ["/opt/ol/wlp/bin/server", "run", "defaultServer"]
+
diff --git a/releases/latest/kernel-slim/Dockerfile.ubi10-micro.openjdk21 b/releases/latest/kernel-slim/Dockerfile.ubi10-micro.openjdk21
new file mode 100755
index 00000000..efb56b82
--- /dev/null
+++ b/releases/latest/kernel-slim/Dockerfile.ubi10-micro.openjdk21
@@ -0,0 +1,164 @@
+FROM registry.access.redhat.com/ubi10/ubi-minimal:latest AS builder
+
+USER root
+
+ARG LIBERTY_VERSION=26.0.0.9
+ARG LIBERTY_SHA=4ec644ee059a8d54a26c326763fd404a6baf1570
+ARG LIBERTY_DOWNLOAD_URL=https://repo1.maven.org/maven2/io/openliberty/openliberty-kernel/$LIBERTY_VERSION/openliberty-kernel-$LIBERTY_VERSION.zip
+
+ARG VERBOSE=false
+
+# If there is a local copy of the image use that instead
+COPY resources/ /tmp/
+
+# Install Open Liberty
+RUN microdnf -y install shadow-utils wget unzip openssl \
+ && if [ ! -f /tmp/wlp.zip ]; then wget -q $LIBERTY_DOWNLOAD_URL -U UA-Open-Liberty-Docker -O /tmp/wlp.zip; fi \
+ && echo "$LIBERTY_SHA /tmp/wlp.zip" > /tmp/wlp.zip.sha1 \
+ && sha1sum -c /tmp/wlp.zip.sha1 \
+ && chmod -R u+x /usr/bin \
+ && unzip -q /tmp/wlp.zip -d /opt/ol \
+ && mkdir -p /licenses \
+ && cp /opt/ol/wlp/LICENSE /licenses/ \
+ && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \
+ && chown -R 1001:0 /opt/ol/wlp \
+ && chmod -R g+rw /opt/ol/wlp
+
+# Install dumb-init
+RUN set -eux; \
+ ARCH="$(uname -m)"; \
+ case "${ARCH}" in \
+ aarch64|arm64) \
+ DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_aarch64'; \
+ DUMB_INIT_SHA256=b7d648f97154a99c539b63c55979cd29f005f88430fb383007fe3458340b795e; \
+ ;; \
+ amd64|x86_64) \
+ DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_x86_64'; \
+ DUMB_INIT_SHA256=e874b55f3279ca41415d290c512a7ba9d08f98041b28ae7c2acb19a545f1c4df; \
+ ;; \
+ ppc64el|ppc64le) \
+ DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_ppc64le'; \
+ DUMB_INIT_SHA256=3d15e80e29f0f4fa1fc686b00613a2220bc37e83a35283d4b4cca1fbd0a5609f; \
+ ;; \
+ s390x) \
+ DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_s390x'; \
+ DUMB_INIT_SHA256=47e4601b152fc6dcb1891e66c30ecc62a2939fd7ffd1515a7c30f281cfec53b7; \
+ ;;\
+ *) \
+ echo "Unsupported arch: ${ARCH}"; \
+ exit 1; \
+ ;; \
+ esac; \
+ curl -LfsSo /usr/bin/dumb-init ${DUMB_INIT_URL}; \
+ echo "${DUMB_INIT_SHA256} */usr/bin/dumb-init" | sha256sum -c -; \
+ chmod +x /usr/bin/dumb-init;
+
+FROM icr.io/appcafe/ibm-semeru-runtimes:open-21-jre-ubi10-micro
+
+USER root
+
+ARG LIBERTY_VERSION=26.0.0.9
+ARG LIBERTY_BUILD_LABEL=cl260920260824-0859
+
+ARG OPENJ9_SCC=true
+ARG VERBOSE=false
+
+LABEL org.opencontainers.image.authors="Leo Christy Jesuraj, Iain Lewis, Melissa Lee, Kirby Chin" \
+ org.opencontainers.image.vendor="Open Liberty" \
+ org.opencontainers.image.url="https://openliberty.io/" \
+ org.opencontainers.image.source="https://github.com/OpenLiberty/ci.docker" \
+ org.opencontainers.image.version="$LIBERTY_VERSION" \
+ org.opencontainers.image.revision="$LIBERTY_BUILD_LABEL" \
+ liberty.version="$LIBERTY_VERSION" \
+ io.openliberty.version="$LIBERTY_VERSION" \
+ vendor="Open Liberty" \
+ name="Open Liberty" \
+ version="$LIBERTY_VERSION" \
+ summary="Image for Open Liberty with IBM Semeru Runtime Open Edition OpenJDK 21 with OpenJ9 and UBI 10 micro" \
+ description="This image contains the Open Liberty runtime with IBM Semeru Runtime Open Edition OpenJDK 21 with OpenJ9 and Red Hat UBI 10 micro as the base OS. For more information on this image please see https://github.com/OpenLiberty/ci.docker#building-an-application-image"
+
+COPY NOTICES /opt/ol/NOTICES
+COPY helpers /opt/ol/helpers
+COPY fixes/ /opt/ol/fixes/
+
+# Add default user 1001 and create wlp with right user/permissions before copying
+RUN echo "1001:x:1001:0::/home/1001:/sbin/nologin" >> /etc/passwd \
+ && mkdir -p /home/1001 \
+ && chown 1001:0 /home/1001 \
+ && mkdir -p /opt/ol/wlp \
+ && chown -R 1001:0 /opt/ol/wlp \
+ && chmod -R g+rw /opt/ol/wlp
+
+COPY --from=builder /usr/bin/dumb-init /usr/bin/dumb-init
+COPY --from=builder /usr/bin/awk /usr/bin/awk
+COPY --from=builder /usr/bin/wget /usr/bin/wget
+
+COPY --from=builder /usr/lib64/libpsl.so* /usr/lib64/
+COPY --from=builder /usr/lib64/libmpfr.so* /usr/lib64/
+
+# Copy the runtime and licenses
+COPY --from=builder --chown=1001:0 /opt/ol/wlp /opt/ol/wlp
+COPY --from=builder /licenses /licenses
+
+# Set Path Shortcuts
+ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
+ LOG_DIR=/liberty/logs \
+ WLP_OUTPUT_DIR=/opt/ol/wlp/output \
+ WLP_SKIP_MAXPERMSIZE=true \
+ OPENJ9_SCC=$OPENJ9_SCC
+
+# Configure Open Liberty
+RUN /opt/ol/wlp/bin/server create \
+ && rm -rf $WLP_OUTPUT_DIR/.classCache /output/workarea \
+ && rm -rf /opt/ol/wlp/usr/servers/defaultServer/server.env
+
+# Create symlinks && set permissions for non-root user
+RUN mkdir /logs \
+ && chown -R 1001:0 /logs \
+ && chmod -R g+rw /logs \
+ && mkdir -p /opt/ol/wlp/usr/shared/resources/lib.index.cache \
+ && ln -s /opt/ol/wlp/usr/shared/resources/lib.index.cache /lib.index.cache \
+ && mkdir -p $WLP_OUTPUT_DIR/defaultServer \
+ && ln -s $WLP_OUTPUT_DIR/defaultServer /output \
+ && ln -s /opt/ol/wlp/usr/servers/defaultServer /config \
+ && mkdir -p /config/configDropins/defaults \
+ && mkdir -p /config/configDropins/overrides \
+ && ln -s /opt/ol/wlp /liberty \
+ && ln -s /opt/ol/fixes /fixes \
+ && echo "" > /config/configDropins/defaults/open-default-port.xml \
+ && chown -R 1001:0 /config \
+ && chmod -R g+rw /config \
+ && chown -R 1001:0 /opt/ol/wlp/usr \
+ && chmod -R g+rw /opt/ol/wlp/usr \
+ && chown -R 1001:0 /opt/ol/wlp/output \
+ && chmod -R g+rw /opt/ol/wlp/output \
+ && chown -R 1001:0 /opt/ol/helpers \
+ && chmod -R ug+rwx /opt/ol/helpers \
+ && chown -R 1001:0 /opt/ol/fixes \
+ && chmod -R g+rwx /opt/ol/fixes \
+ && mkdir /etc/wlp \
+ && chown -R 1001:0 /etc/wlp \
+ && chmod -R g+rw /etc/wlp \
+ && if [ -e /etc/instanton.ld.so.cache ]; then chmod g+w /etc/ld.so.cache; fi \
+ && ln -s /logs /liberty/logs \
+ && mkdir /serviceability \
+ && chown -R 1001:0 /serviceability \
+ && chmod -R g+rw /serviceability
+
+# Create a new SCC layer
+RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \
+ && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache /output/workarea \
+ && chown -R 1001:0 /opt/ol/wlp/output \
+ && chmod -R g+rwx /opt/ol/wlp/output
+
+#These settings are needed so that we can run as a different user than 1001 after server warmup
+ENV RANDFILE=/tmp/.rnd \
+ OPENJ9_JAVA_OPTIONS="-XX:+IgnoreUnrecognizedVMOptions -XX:+IdleTuningGcOnIdle -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,readonly,nonFatal -Dosgi.checkConfiguration=false"
+
+USER 1001
+
+EXPOSE 9443
+
+ENTRYPOINT ["/opt/ol/helpers/runtime/docker-server.sh"]
+CMD ["/opt/ol/wlp/bin/server", "run", "defaultServer"]
+
diff --git a/releases/latest/kernel-slim/Dockerfile.ubi10-micro.openjdk25 b/releases/latest/kernel-slim/Dockerfile.ubi10-micro.openjdk25
new file mode 100755
index 00000000..3ceeebcd
--- /dev/null
+++ b/releases/latest/kernel-slim/Dockerfile.ubi10-micro.openjdk25
@@ -0,0 +1,164 @@
+FROM registry.access.redhat.com/ubi10/ubi-minimal:latest AS builder
+
+USER root
+
+ARG LIBERTY_VERSION=26.0.0.9
+ARG LIBERTY_SHA=4ec644ee059a8d54a26c326763fd404a6baf1570
+ARG LIBERTY_DOWNLOAD_URL=https://repo1.maven.org/maven2/io/openliberty/openliberty-kernel/$LIBERTY_VERSION/openliberty-kernel-$LIBERTY_VERSION.zip
+
+ARG VERBOSE=false
+
+# If there is a local copy of the image use that instead
+COPY resources/ /tmp/
+
+# Install Open Liberty
+RUN microdnf -y install shadow-utils wget unzip openssl \
+ && if [ ! -f /tmp/wlp.zip ]; then wget -q $LIBERTY_DOWNLOAD_URL -U UA-Open-Liberty-Docker -O /tmp/wlp.zip; fi \
+ && echo "$LIBERTY_SHA /tmp/wlp.zip" > /tmp/wlp.zip.sha1 \
+ && sha1sum -c /tmp/wlp.zip.sha1 \
+ && chmod -R u+x /usr/bin \
+ && unzip -q /tmp/wlp.zip -d /opt/ol \
+ && mkdir -p /licenses \
+ && cp /opt/ol/wlp/LICENSE /licenses/ \
+ && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \
+ && chown -R 1001:0 /opt/ol/wlp \
+ && chmod -R g+rw /opt/ol/wlp
+
+# Install dumb-init
+RUN set -eux; \
+ ARCH="$(uname -m)"; \
+ case "${ARCH}" in \
+ aarch64|arm64) \
+ DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_aarch64'; \
+ DUMB_INIT_SHA256=b7d648f97154a99c539b63c55979cd29f005f88430fb383007fe3458340b795e; \
+ ;; \
+ amd64|x86_64) \
+ DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_x86_64'; \
+ DUMB_INIT_SHA256=e874b55f3279ca41415d290c512a7ba9d08f98041b28ae7c2acb19a545f1c4df; \
+ ;; \
+ ppc64el|ppc64le) \
+ DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_ppc64le'; \
+ DUMB_INIT_SHA256=3d15e80e29f0f4fa1fc686b00613a2220bc37e83a35283d4b4cca1fbd0a5609f; \
+ ;; \
+ s390x) \
+ DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_s390x'; \
+ DUMB_INIT_SHA256=47e4601b152fc6dcb1891e66c30ecc62a2939fd7ffd1515a7c30f281cfec53b7; \
+ ;;\
+ *) \
+ echo "Unsupported arch: ${ARCH}"; \
+ exit 1; \
+ ;; \
+ esac; \
+ curl -LfsSo /usr/bin/dumb-init ${DUMB_INIT_URL}; \
+ echo "${DUMB_INIT_SHA256} */usr/bin/dumb-init" | sha256sum -c -; \
+ chmod +x /usr/bin/dumb-init;
+
+FROM icr.io/appcafe/ibm-semeru-runtimes:open-25-jre-ubi10-micro
+
+USER root
+
+ARG LIBERTY_VERSION=26.0.0.9
+ARG LIBERTY_BUILD_LABEL=cl260920260824-0859
+
+ARG OPENJ9_SCC=true
+ARG VERBOSE=false
+
+LABEL org.opencontainers.image.authors="Leo Christy Jesuraj, Iain Lewis, Melissa Lee, Kirby Chin" \
+ org.opencontainers.image.vendor="Open Liberty" \
+ org.opencontainers.image.url="https://openliberty.io/" \
+ org.opencontainers.image.source="https://github.com/OpenLiberty/ci.docker" \
+ org.opencontainers.image.version="$LIBERTY_VERSION" \
+ org.opencontainers.image.revision="$LIBERTY_BUILD_LABEL" \
+ liberty.version="$LIBERTY_VERSION" \
+ io.openliberty.version="$LIBERTY_VERSION" \
+ vendor="Open Liberty" \
+ name="Open Liberty" \
+ version="$LIBERTY_VERSION" \
+ summary="Image for Open Liberty with IBM Semeru Runtime Open Edition OpenJDK 25 with OpenJ9 and UBI 10 micro" \
+ description="This image contains the Open Liberty runtime with IBM Semeru Runtime Open Edition OpenJDK 25 with OpenJ9 and Red Hat UBI 10 micro as the base OS. For more information on this image please see https://github.com/OpenLiberty/ci.docker#building-an-application-image"
+
+COPY NOTICES /opt/ol/NOTICES
+COPY helpers /opt/ol/helpers
+COPY fixes/ /opt/ol/fixes/
+
+# Add default user 1001 and create wlp with right user/permissions before copying
+RUN echo "1001:x:1001:0::/home/1001:/sbin/nologin" >> /etc/passwd \
+ && mkdir -p /home/1001 \
+ && chown 1001:0 /home/1001 \
+ && mkdir -p /opt/ol/wlp \
+ && chown -R 1001:0 /opt/ol/wlp \
+ && chmod -R g+rw /opt/ol/wlp
+
+COPY --from=builder /usr/bin/dumb-init /usr/bin/dumb-init
+COPY --from=builder /usr/bin/awk /usr/bin/awk
+COPY --from=builder /usr/bin/wget /usr/bin/wget
+
+COPY --from=builder /usr/lib64/libpsl.so* /usr/lib64/
+COPY --from=builder /usr/lib64/libmpfr.so* /usr/lib64/
+
+# Copy the runtime and licenses
+COPY --from=builder --chown=1001:0 /opt/ol/wlp /opt/ol/wlp
+COPY --from=builder /licenses /licenses
+
+# Set Path Shortcuts
+ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
+ LOG_DIR=/liberty/logs \
+ WLP_OUTPUT_DIR=/opt/ol/wlp/output \
+ WLP_SKIP_MAXPERMSIZE=true \
+ OPENJ9_SCC=$OPENJ9_SCC
+
+# Configure Open Liberty
+RUN /opt/ol/wlp/bin/server create \
+ && rm -rf $WLP_OUTPUT_DIR/.classCache /output/workarea \
+ && rm -rf /opt/ol/wlp/usr/servers/defaultServer/server.env
+
+# Create symlinks && set permissions for non-root user
+RUN mkdir /logs \
+ && chown -R 1001:0 /logs \
+ && chmod -R g+rw /logs \
+ && mkdir -p /opt/ol/wlp/usr/shared/resources/lib.index.cache \
+ && ln -s /opt/ol/wlp/usr/shared/resources/lib.index.cache /lib.index.cache \
+ && mkdir -p $WLP_OUTPUT_DIR/defaultServer \
+ && ln -s $WLP_OUTPUT_DIR/defaultServer /output \
+ && ln -s /opt/ol/wlp/usr/servers/defaultServer /config \
+ && mkdir -p /config/configDropins/defaults \
+ && mkdir -p /config/configDropins/overrides \
+ && ln -s /opt/ol/wlp /liberty \
+ && ln -s /opt/ol/fixes /fixes \
+ && echo "" > /config/configDropins/defaults/open-default-port.xml \
+ && chown -R 1001:0 /config \
+ && chmod -R g+rw /config \
+ && chown -R 1001:0 /opt/ol/wlp/usr \
+ && chmod -R g+rw /opt/ol/wlp/usr \
+ && chown -R 1001:0 /opt/ol/wlp/output \
+ && chmod -R g+rw /opt/ol/wlp/output \
+ && chown -R 1001:0 /opt/ol/helpers \
+ && chmod -R ug+rwx /opt/ol/helpers \
+ && chown -R 1001:0 /opt/ol/fixes \
+ && chmod -R g+rwx /opt/ol/fixes \
+ && mkdir /etc/wlp \
+ && chown -R 1001:0 /etc/wlp \
+ && chmod -R g+rw /etc/wlp \
+ && if [ -e /etc/instanton.ld.so.cache ]; then chmod g+w /etc/ld.so.cache; fi \
+ && ln -s /logs /liberty/logs \
+ && mkdir /serviceability \
+ && chown -R 1001:0 /serviceability \
+ && chmod -R g+rw /serviceability
+
+# Create a new SCC layer
+RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \
+ && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache /output/workarea \
+ && chown -R 1001:0 /opt/ol/wlp/output \
+ && chmod -R g+rwx /opt/ol/wlp/output
+
+#These settings are needed so that we can run as a different user than 1001 after server warmup
+ENV RANDFILE=/tmp/.rnd \
+ OPENJ9_JAVA_OPTIONS="-XX:+IgnoreUnrecognizedVMOptions -XX:+IdleTuningGcOnIdle -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,readonly,nonFatal -Dosgi.checkConfiguration=false"
+
+USER 1001
+
+EXPOSE 9443
+
+ENTRYPOINT ["/opt/ol/helpers/runtime/docker-server.sh"]
+CMD ["/opt/ol/wlp/bin/server", "run", "defaultServer"]
+
diff --git a/releases/latest/kernel-slim/Dockerfile.ubi10-micro.openjdk8 b/releases/latest/kernel-slim/Dockerfile.ubi10-micro.openjdk8
new file mode 100755
index 00000000..f2212121
--- /dev/null
+++ b/releases/latest/kernel-slim/Dockerfile.ubi10-micro.openjdk8
@@ -0,0 +1,164 @@
+FROM registry.access.redhat.com/ubi10/ubi-minimal:latest AS builder
+
+USER root
+
+ARG LIBERTY_VERSION=26.0.0.9
+ARG LIBERTY_SHA=4ec644ee059a8d54a26c326763fd404a6baf1570
+ARG LIBERTY_DOWNLOAD_URL=https://repo1.maven.org/maven2/io/openliberty/openliberty-kernel/$LIBERTY_VERSION/openliberty-kernel-$LIBERTY_VERSION.zip
+
+ARG VERBOSE=false
+
+# If there is a local copy of the image use that instead
+COPY resources/ /tmp/
+
+# Install Open Liberty
+RUN microdnf -y install shadow-utils wget unzip openssl \
+ && if [ ! -f /tmp/wlp.zip ]; then wget -q $LIBERTY_DOWNLOAD_URL -U UA-Open-Liberty-Docker -O /tmp/wlp.zip; fi \
+ && echo "$LIBERTY_SHA /tmp/wlp.zip" > /tmp/wlp.zip.sha1 \
+ && sha1sum -c /tmp/wlp.zip.sha1 \
+ && chmod -R u+x /usr/bin \
+ && unzip -q /tmp/wlp.zip -d /opt/ol \
+ && mkdir -p /licenses \
+ && cp /opt/ol/wlp/LICENSE /licenses/ \
+ && adduser -u 1001 -r -g root -s /usr/sbin/nologin default \
+ && chown -R 1001:0 /opt/ol/wlp \
+ && chmod -R g+rw /opt/ol/wlp
+
+# Install dumb-init
+RUN set -eux; \
+ ARCH="$(uname -m)"; \
+ case "${ARCH}" in \
+ aarch64|arm64) \
+ DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_aarch64'; \
+ DUMB_INIT_SHA256=b7d648f97154a99c539b63c55979cd29f005f88430fb383007fe3458340b795e; \
+ ;; \
+ amd64|x86_64) \
+ DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_x86_64'; \
+ DUMB_INIT_SHA256=e874b55f3279ca41415d290c512a7ba9d08f98041b28ae7c2acb19a545f1c4df; \
+ ;; \
+ ppc64el|ppc64le) \
+ DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_ppc64le'; \
+ DUMB_INIT_SHA256=3d15e80e29f0f4fa1fc686b00613a2220bc37e83a35283d4b4cca1fbd0a5609f; \
+ ;; \
+ s390x) \
+ DUMB_INIT_URL='https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_s390x'; \
+ DUMB_INIT_SHA256=47e4601b152fc6dcb1891e66c30ecc62a2939fd7ffd1515a7c30f281cfec53b7; \
+ ;;\
+ *) \
+ echo "Unsupported arch: ${ARCH}"; \
+ exit 1; \
+ ;; \
+ esac; \
+ curl -LfsSo /usr/bin/dumb-init ${DUMB_INIT_URL}; \
+ echo "${DUMB_INIT_SHA256} */usr/bin/dumb-init" | sha256sum -c -; \
+ chmod +x /usr/bin/dumb-init;
+
+FROM icr.io/appcafe/ibm-semeru-runtimes:open-8-jre-ubi10-micro
+
+USER root
+
+ARG LIBERTY_VERSION=26.0.0.9
+ARG LIBERTY_BUILD_LABEL=cl260920260824-0859
+
+ARG OPENJ9_SCC=true
+ARG VERBOSE=false
+
+LABEL org.opencontainers.image.authors="Leo Christy Jesuraj, Iain Lewis, Melissa Lee, Kirby Chin" \
+ org.opencontainers.image.vendor="Open Liberty" \
+ org.opencontainers.image.url="https://openliberty.io/" \
+ org.opencontainers.image.source="https://github.com/OpenLiberty/ci.docker" \
+ org.opencontainers.image.version="$LIBERTY_VERSION" \
+ org.opencontainers.image.revision="$LIBERTY_BUILD_LABEL" \
+ liberty.version="$LIBERTY_VERSION" \
+ io.openliberty.version="$LIBERTY_VERSION" \
+ vendor="Open Liberty" \
+ name="Open Liberty" \
+ version="$LIBERTY_VERSION" \
+ summary="Image for Open Liberty with IBM Semeru Runtime Open Edition OpenJDK 8 with OpenJ9 and UBI 10 micro" \
+ description="This image contains the Open Liberty runtime with IBM Semeru Runtime Open Edition OpenJDK 8 with OpenJ9 and Red Hat UBI 10 micro as the base OS. For more information on this image please see https://github.com/OpenLiberty/ci.docker#building-an-application-image"
+
+COPY NOTICES /opt/ol/NOTICES
+COPY helpers /opt/ol/helpers
+COPY fixes/ /opt/ol/fixes/
+
+# Add default user 1001 and create wlp with right user/permissions before copying
+RUN echo "1001:x:1001:0::/home/1001:/sbin/nologin" >> /etc/passwd \
+ && mkdir -p /home/1001 \
+ && chown 1001:0 /home/1001 \
+ && mkdir -p /opt/ol/wlp \
+ && chown -R 1001:0 /opt/ol/wlp \
+ && chmod -R g+rw /opt/ol/wlp
+
+COPY --from=builder /usr/bin/dumb-init /usr/bin/dumb-init
+COPY --from=builder /usr/bin/awk /usr/bin/awk
+COPY --from=builder /usr/bin/wget /usr/bin/wget
+
+COPY --from=builder /usr/lib64/libpsl.so* /usr/lib64/
+COPY --from=builder /usr/lib64/libmpfr.so* /usr/lib64/
+
+# Copy the runtime and licenses
+COPY --from=builder --chown=1001:0 /opt/ol/wlp /opt/ol/wlp
+COPY --from=builder /licenses /licenses
+
+# Set Path Shortcuts
+ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
+ LOG_DIR=/liberty/logs \
+ WLP_OUTPUT_DIR=/opt/ol/wlp/output \
+ WLP_SKIP_MAXPERMSIZE=true \
+ OPENJ9_SCC=$OPENJ9_SCC
+
+# Configure Open Liberty
+RUN /opt/ol/wlp/bin/server create \
+ && rm -rf $WLP_OUTPUT_DIR/.classCache /output/workarea \
+ && rm -rf /opt/ol/wlp/usr/servers/defaultServer/server.env
+
+# Create symlinks && set permissions for non-root user
+RUN mkdir /logs \
+ && chown -R 1001:0 /logs \
+ && chmod -R g+rw /logs \
+ && mkdir -p /opt/ol/wlp/usr/shared/resources/lib.index.cache \
+ && ln -s /opt/ol/wlp/usr/shared/resources/lib.index.cache /lib.index.cache \
+ && mkdir -p $WLP_OUTPUT_DIR/defaultServer \
+ && ln -s $WLP_OUTPUT_DIR/defaultServer /output \
+ && ln -s /opt/ol/wlp/usr/servers/defaultServer /config \
+ && mkdir -p /config/configDropins/defaults \
+ && mkdir -p /config/configDropins/overrides \
+ && ln -s /opt/ol/wlp /liberty \
+ && ln -s /opt/ol/fixes /fixes \
+ && echo "" > /config/configDropins/defaults/open-default-port.xml \
+ && chown -R 1001:0 /config \
+ && chmod -R g+rw /config \
+ && chown -R 1001:0 /opt/ol/wlp/usr \
+ && chmod -R g+rw /opt/ol/wlp/usr \
+ && chown -R 1001:0 /opt/ol/wlp/output \
+ && chmod -R g+rw /opt/ol/wlp/output \
+ && chown -R 1001:0 /opt/ol/helpers \
+ && chmod -R ug+rwx /opt/ol/helpers \
+ && chown -R 1001:0 /opt/ol/fixes \
+ && chmod -R g+rwx /opt/ol/fixes \
+ && mkdir /etc/wlp \
+ && chown -R 1001:0 /etc/wlp \
+ && chmod -R g+rw /etc/wlp \
+ && if [ -e /etc/instanton.ld.so.cache ]; then chmod g+w /etc/ld.so.cache; fi \
+ && ln -s /logs /liberty/logs \
+ && mkdir /serviceability \
+ && chown -R 1001:0 /serviceability \
+ && chmod -R g+rw /serviceability
+
+# Create a new SCC layer
+RUN if [ "$OPENJ9_SCC" = "true" ]; then populate_scc.sh; fi \
+ && rm -rf /output/messaging /output/resources/security /logs/* $WLP_OUTPUT_DIR/.classCache /output/workarea \
+ && chown -R 1001:0 /opt/ol/wlp/output \
+ && chmod -R g+rwx /opt/ol/wlp/output
+
+#These settings are needed so that we can run as a different user than 1001 after server warmup
+ENV RANDFILE=/tmp/.rnd \
+ OPENJ9_JAVA_OPTIONS="-XX:+IgnoreUnrecognizedVMOptions -XX:+IdleTuningGcOnIdle -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,readonly,nonFatal -Dosgi.checkConfiguration=false"
+
+USER 1001
+
+EXPOSE 9443
+
+ENTRYPOINT ["/opt/ol/helpers/runtime/docker-server.sh"]
+CMD ["/opt/ol/wlp/bin/server", "run", "defaultServer"]
+
diff --git a/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.ibmjava8 b/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.ibmjava8
index ba9301d0..d626bf03 100644
--- a/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.ibmjava8
+++ b/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.ibmjava8
@@ -109,7 +109,8 @@ ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
LOG_DIR=/liberty/logs \
WLP_OUTPUT_DIR=/opt/ol/wlp/output \
WLP_SKIP_MAXPERMSIZE=true \
- OPENJ9_SCC=$OPENJ9_SCC
+ OPENJ9_SCC=$OPENJ9_SCC \
+ ENABLE_HTTP_PORT=true
# Configure Open Liberty
RUN /opt/ol/wlp/bin/server create \
diff --git a/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk11 b/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk11
index 7c010a0f..63f61c2e 100644
--- a/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk11
+++ b/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk11
@@ -100,7 +100,8 @@ ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
LOG_DIR=/liberty/logs \
WLP_OUTPUT_DIR=/opt/ol/wlp/output \
WLP_SKIP_MAXPERMSIZE=true \
- OPENJ9_SCC=$OPENJ9_SCC
+ OPENJ9_SCC=$OPENJ9_SCC \
+ ENABLE_HTTP_PORT=true
# Configure Open Liberty
RUN /opt/ol/wlp/bin/server create \
diff --git a/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk17 b/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk17
index af653730..8f162f27 100644
--- a/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk17
+++ b/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk17
@@ -100,7 +100,8 @@ ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
LOG_DIR=/liberty/logs \
WLP_OUTPUT_DIR=/opt/ol/wlp/output \
WLP_SKIP_MAXPERMSIZE=true \
- OPENJ9_SCC=$OPENJ9_SCC
+ OPENJ9_SCC=$OPENJ9_SCC \
+ ENABLE_HTTP_PORT=true
# Configure Open Liberty
RUN /opt/ol/wlp/bin/server create \
diff --git a/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk21 b/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk21
index 8ca52bfe..689c8ecf 100644
--- a/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk21
+++ b/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk21
@@ -100,7 +100,8 @@ ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
LOG_DIR=/liberty/logs \
WLP_OUTPUT_DIR=/opt/ol/wlp/output \
WLP_SKIP_MAXPERMSIZE=true \
- OPENJ9_SCC=$OPENJ9_SCC
+ OPENJ9_SCC=$OPENJ9_SCC \
+ ENABLE_HTTP_PORT=true
# Configure Open Liberty
RUN /opt/ol/wlp/bin/server create \
diff --git a/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk25 b/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk25
index 096bab68..4aee7685 100644
--- a/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk25
+++ b/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk25
@@ -100,7 +100,8 @@ ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
LOG_DIR=/liberty/logs \
WLP_OUTPUT_DIR=/opt/ol/wlp/output \
WLP_SKIP_MAXPERMSIZE=true \
- OPENJ9_SCC=$OPENJ9_SCC
+ OPENJ9_SCC=$OPENJ9_SCC \
+ ENABLE_HTTP_PORT=true
# Configure Open Liberty
RUN /opt/ol/wlp/bin/server create \
diff --git a/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk8 b/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk8
index e46ed4ea..5449ac26 100644
--- a/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk8
+++ b/releases/latest/kernel-slim/Dockerfile.ubi10-minimal.openjdk8
@@ -100,7 +100,8 @@ ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
LOG_DIR=/liberty/logs \
WLP_OUTPUT_DIR=/opt/ol/wlp/output \
WLP_SKIP_MAXPERMSIZE=true \
- OPENJ9_SCC=$OPENJ9_SCC
+ OPENJ9_SCC=$OPENJ9_SCC \
+ ENABLE_HTTP_PORT=true
# Configure Open Liberty
RUN /opt/ol/wlp/bin/server create \
diff --git a/releases/latest/kernel-slim/Dockerfile.ubuntu.openjdk11 b/releases/latest/kernel-slim/Dockerfile.ubuntu.openjdk11
index b07c296f..3556b7f2 100644
--- a/releases/latest/kernel-slim/Dockerfile.ubuntu.openjdk11
+++ b/releases/latest/kernel-slim/Dockerfile.ubuntu.openjdk11
@@ -77,7 +77,8 @@ ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
LOG_DIR=/liberty/logs \
WLP_OUTPUT_DIR=/opt/ol/wlp/output \
WLP_SKIP_MAXPERMSIZE=true \
- OPENJ9_SCC=$OPENJ9_SCC
+ OPENJ9_SCC=$OPENJ9_SCC \
+ ENABLE_HTTP_PORT=true
# Configure Open Liberty
RUN /opt/ol/wlp/bin/server create \
diff --git a/releases/latest/kernel-slim/Dockerfile.ubuntu.openjdk17 b/releases/latest/kernel-slim/Dockerfile.ubuntu.openjdk17
index 80415b3f..ea56a05e 100644
--- a/releases/latest/kernel-slim/Dockerfile.ubuntu.openjdk17
+++ b/releases/latest/kernel-slim/Dockerfile.ubuntu.openjdk17
@@ -77,7 +77,8 @@ ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
LOG_DIR=/liberty/logs \
WLP_OUTPUT_DIR=/opt/ol/wlp/output \
WLP_SKIP_MAXPERMSIZE=true \
- OPENJ9_SCC=$OPENJ9_SCC
+ OPENJ9_SCC=$OPENJ9_SCC \
+ ENABLE_HTTP_PORT=true
# Configure Open Liberty
RUN /opt/ol/wlp/bin/server create \
diff --git a/releases/latest/kernel-slim/Dockerfile.ubuntu.openjdk8 b/releases/latest/kernel-slim/Dockerfile.ubuntu.openjdk8
index d4971090..e9c57848 100644
--- a/releases/latest/kernel-slim/Dockerfile.ubuntu.openjdk8
+++ b/releases/latest/kernel-slim/Dockerfile.ubuntu.openjdk8
@@ -77,7 +77,8 @@ ENV PATH=$PATH:/opt/ol/wlp/bin:/opt/ol/helpers/build:/opt/ol/helpers/runtime \
LOG_DIR=/liberty/logs \
WLP_OUTPUT_DIR=/opt/ol/wlp/output \
WLP_SKIP_MAXPERMSIZE=true \
- OPENJ9_SCC=$OPENJ9_SCC
+ OPENJ9_SCC=$OPENJ9_SCC \
+ ENABLE_HTTP_PORT=true
# Configure Open Liberty
RUN /opt/ol/wlp/bin/server create \
diff --git a/releases/latest/kernel-slim/helpers/build/configuration_snippets/http-port-disabled.xml b/releases/latest/kernel-slim/helpers/build/configuration_snippets/http-port-disabled.xml
new file mode 100644
index 00000000..4abd49cd
--- /dev/null
+++ b/releases/latest/kernel-slim/helpers/build/configuration_snippets/http-port-disabled.xml
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/releases/latest/kernel-slim/helpers/build/configuration_snippets/update-trigger-disabled.xml b/releases/latest/kernel-slim/helpers/build/configuration_snippets/update-trigger-disabled.xml
new file mode 100644
index 00000000..b97391b5
--- /dev/null
+++ b/releases/latest/kernel-slim/helpers/build/configuration_snippets/update-trigger-disabled.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
diff --git a/releases/latest/kernel-slim/helpers/build/configure.sh b/releases/latest/kernel-slim/helpers/build/configure.sh
index 5341dde1..75a8bbb3 100755
--- a/releases/latest/kernel-slim/helpers/build/configure.sh
+++ b/releases/latest/kernel-slim/helpers/build/configure.sh
@@ -18,6 +18,17 @@ function main() {
#Check for each Liberty value-add functionality
+ # Disable automatic configuration file monitoring (security hardening).
+ if [ "$SKIP_UPDATE_TRIGGER_DISABLED" != "true" ]; then
+ cp $SNIPPETS_SOURCE/update-trigger-disabled.xml $SNIPPETS_TARGET_DEFAULTS/update-trigger-disabled.xml
+ chmod g+rw $SNIPPETS_TARGET_DEFAULTS/update-trigger-disabled.xml
+ fi
+
+ # HTTP port is disabled by default. Set ENABLE_HTTP_PORT=true to re-enable port 9080.
+ if [ "$ENABLE_HTTP_PORT" != "true" ]; then
+ cp $SNIPPETS_SOURCE/http-port-disabled.xml $SNIPPETS_TARGET_DEFAULTS/http-port-disabled.xml
+ fi
+
# Infinispan Session Caching
if [[ -n "$INFINISPAN_SERVICE_NAME" ]]; then
cp ${SNIPPETS_SOURCE}/infinispan-client-sessioncache.xml ${SNIPPETS_TARGET}/infinispan-client-sessioncache.xml
diff --git a/releases/latest/kernel-slim/helpers/build/features.sh b/releases/latest/kernel-slim/helpers/build/features.sh
index 5b4800eb..7595603e 100755
--- a/releases/latest/kernel-slim/helpers/build/features.sh
+++ b/releases/latest/kernel-slim/helpers/build/features.sh
@@ -26,8 +26,14 @@ fi
if [ "$SSL" == "true" ] || [ "$TLS" == "true" ]; then
cp $SNIPPETS_SOURCE/tls.xml $SNIPPETS_TARGET/tls.xml
fi
-
# Install necessary features using featureUtility
featureUtility installServerFeatures --acceptLicense defaultServer --noCache
find /opt/ol/wlp/lib /opt/ol/wlp/bin ! -perm -g=rw -print0 | xargs -0 -r chmod g+rw
+# Validate the Liberty installation integrity after feature installation
+if [ "$SKIP_FEATURE_VALIDATE" != "true" ]; then
+ /opt/ol/wlp/bin/productInfo validate
+fi
+
+echo "features.sh script has been run" > /logs/features.log
+
diff --git a/releases/latest/kernel-slim/helpers/build/populate_scc.sh b/releases/latest/kernel-slim/helpers/build/populate_scc.sh
index 1012a07a..01e122d9 100755
--- a/releases/latest/kernel-slim/helpers/build/populate_scc.sh
+++ b/releases/latest/kernel-slim/helpers/build/populate_scc.sh
@@ -1,15 +1,28 @@
#!/bin/bash
. /opt/ol/helpers/build/internal/logger.sh
+# Use curl/wget to warm endpoints
+if command -v curl > /dev/null 2>&1; then
+ http_get() { curl --silent --output /dev/null --show-error --fail --max-time 5 --insecure "$1"; }
+else
+ http_get() { wget -q --no-check-certificate -O /dev/null -T 5 "$1"; }
+fi
+
set -Eeo pipefail
SCC_SIZE="80m" # Default size of the SCC layer.
ITERATIONS=2 # Number of iterations to run to populate it.
TRIM_SCC=yes # Trim the SCC to eliminate any wasted space.
WARM_ENDPOINT=true
-WARM_ENDPOINT_URL=localhost:9080/
WARM_OPENAPI_ENDPOINT=true
-WARM_OPENAPI_ENDPOINT_URL=localhost:9080/openapi
+
+# Default warm URLs based on ENABLE_HTTP_PORT, with HTTP_PORT/HTTPS_PORT overrides.
+if [ "$ENABLE_HTTP_PORT" == "true" ]; then
+ WARM_ENDPOINT_URL="http://localhost:${HTTP_PORT:-9080}/"
+else
+ WARM_ENDPOINT_URL="https://localhost:${HTTPS_PORT:-9443}/"
+fi
+WARM_OPENAPI_ENDPOINT_URL="${WARM_ENDPOINT_URL}openapi"
# If this directory exists and has at least ug=rwx permissions, assume the base image includes an SCC called 'openj9_system_scc' and build on it.
# If not, build on our own SCC.
@@ -81,10 +94,10 @@ do
-s Size of the SCC in megabytes (m suffix required). (Default: $SCC_SIZE)
-t Trim the SCC to eliminate most of the free space, if any.
-d Don't trim the SCC.
- -w Use curl to warm an endpoint during SCC creation. (Default: $WARM_ENDPOINT)
+ -w Use curl/wget to warm an endpoint during SCC creation. (Default: $WARM_ENDPOINT)
-c Do not warm an endpoint during SCC creation.
-u The URL endpoint to warm during SCC creation. (Default: $WARM_ENDPOINT_URL)
- -m Use curl to warm the openapi endpoint during SCC creation. (Default: $WARM_OPENAPI_ENDPOINT)
+ -m Use curl/wget to warm the openapi endpoint during SCC creation. (Default: $WARM_OPENAPI_ENDPOINT)
-l Do not warm the openapi endpoint during SCC creation.
-o The Open API URL endpoint to warm during SCC creation. (Default: $WARM_ENDPOINT_OPENAPI_URL)
@@ -117,11 +130,11 @@ then
if [ ${WARM_ENDPOINT} == true ]
then
- curl --silent --output /dev/null --show-error --fail --max-time 5 ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing"
+ http_get ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing"
fi
if [ ${WARM_OPENAPI_ENDPOINT} == true ]
then
- curl --silent --output /dev/null --show-error --fail --max-time 5 ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing"
+ http_get ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing"
fi
/opt/ol/wlp/bin/server stop
@@ -152,11 +165,11 @@ do
if [ ${WARM_ENDPOINT} == true ]
then
- curl --silent --output /dev/null --show-error --fail --max-time 5 ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing"
+ http_get ${WARM_ENDPOINT_URL} 2>&1 || echo "${WARM_ENDPOINT_URL} call failed, continuing"
fi
if [ ${WARM_OPENAPI_ENDPOINT} == true ]
then
- curl --silent --output /dev/null --show-error --fail --max-time 5 ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing"
+ http_get ${WARM_OPENAPI_ENDPOINT_URL} 2>&1 || echo "${WARM_OPENAPI_ENDPOINT_URL} call failed, continuing"
fi
/opt/ol/wlp/bin/server stop