Namespace
library
Image / Tag
maven:3-ibm-semeru-21-noble
Content Digest
sha256:e96239fb3f851beed105f4adc210d70a129e8d19af5ab5c15f74f22d714096a8
Details
Created

2026-03-09 19:13:18 UTC

Size

306 MB

Content Digest
Labels
  • org.opencontainers.image.description
    Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information.
  • org.opencontainers.image.ref.name
    ubuntu
  • org.opencontainers.image.source
    https://github.com/carlossg/docker-maven
  • org.opencontainers.image.title
    Apache Maven
  • org.opencontainers.image.url
    https://github.com/carlossg/docker-maven
  • org.opencontainers.image.version
    24.04

Environment
JAVA_HOME

/opt/java/openjdk

JAVA_TOOL_OPTIONS

-XX:+IgnoreUnrecognizedVMOptions -XX:+PortableSharedCache -XX:+IdleTuningGcOnIdle -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,readonly,nonFatal

JAVA_VERSION

jdk-21.0.10+7.1_openj9-0.57.0

LANG

en_US.UTF-8

LANGUAGE

en_US:en

LC_ALL

en_US.UTF-8

MAVEN_CONFIG

/root/.m2

MAVEN_HOME

/usr/share/maven

PATH

/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin


Layers

[#000] sha256:01d7766a2e4a62b74e0bebf2cd12c47e675e9221174f6570854203e84ffe68b0 - 9.26% (28.4 MB)

[#001] sha256:391a94b4de0700e7bc67bd4d7f3aed0d43822df0fcd2c1f5ca9b28a69f1f7993 - 3.99% (12.2 MB)

[#002] sha256:eae6048c087c98ecf75d31e48bc249be8e00643dfa2842e652a21687c782dad5 - 74.71% (229 MB)

[#003] sha256:6423a7a56b17c09028c3406446201875b1e5439ccaff68fae4dc0541e7ed4cb3 - 1.99% (6.09 MB)

[#004] sha256:f0484ffeac2c5d2b253f26b2dad0dea02522be96854254618b9584f7f20a1de3 - 7.03% (21.5 MB)

[#005] sha256:d5b9611837211a47812ae0a2f81b359a6276d7f59b273c7b1b4f950b20fa72dc - 3.02% (9.25 MB)

[#006] sha256:092c9357e2847d051893aaad2149b6102d7497af7c6b214a04c3f6c851c4a7b9 - 0.0% (849 Bytes)

[#007] sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 - 0.0% (32 Bytes)

[#008] sha256:5f6e36c0a97e70c2650c728cf6a5a95c2523fe83ee35ef6299bfccf6194c71ee - 0.0% (155 Bytes)


History
2026-02-10 16:49:54 UTC

/bin/sh -c #(nop) ARG RELEASE

2026-02-10 16:49:54 UTC

/bin/sh -c #(nop) ARG LAUNCHPAD_BUILD_ARCH

2026-02-10 16:49:54 UTC

/bin/sh -c #(nop) LABEL org.opencontainers.image.ref.name=ubuntu

2026-02-10 16:49:54 UTC

/bin/sh -c #(nop) LABEL org.opencontainers.image.version=24.04

2026-02-10 16:49:56 UTC

/bin/sh -c #(nop) ADD file:1ae27d2ef4369361104b699712f3897141e394785df5d193d67b44626f57eb87 in /

2026-02-10 16:49:57 UTC

/bin/sh -c #(nop) CMD ["/bin/bash"]

2026-03-03 20:15:14 UTC (buildkit.dockerfile.v0)

ENV LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_ALL=en_US.UTF-8

2026-03-03 20:15:14 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends tzdata curl ca-certificates fontconfig locales && echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen && locale-gen en_US.UTF-8 && rm -rf /var/lib/apt/lists/* # buildkit

2026-03-03 20:15:14 UTC (buildkit.dockerfile.v0)

ENV JAVA_VERSION=jdk-21.0.10+7.1_openj9-0.57.0

2026-03-03 20:15:25 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; ARCH="$(dpkg --print-architecture)"; case "${ARCH}" in aarch64|arm64) ESUM='fbd5af08d6abb7ac8a9707982f6759d33245e0b8b05d7ddd593cd45c0cb98e90'; BINARY_URL='https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.10+7.1_openj9-0.57.0/ibm-semeru-open-jdk_aarch64_linux_21.0.10.1.tar.gz'; ;; amd64|x86_64) ESUM='df501befcb3f6b7f47c3557d9887197d78f013beb57b0d56494176b54ad80c19'; BINARY_URL='https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.10+7.1_openj9-0.57.0/ibm-semeru-open-jdk_x64_linux_21.0.10.1.tar.gz'; ;; ppc64el|ppc64le) ESUM='c60264d4b7dbd0ad94207ed85f4c71a5263ecb7c5bb6329da120194847d44611'; BINARY_URL='https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.10+7.1_openj9-0.57.0/ibm-semeru-open-jdk_ppc64le_linux_21.0.10.1.tar.gz'; ;; s390x) ESUM='50d3a0a8d251a1826af4532a7b97874b58231b749bc44a29a61736ae1df47e69'; BINARY_URL='https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.10+7.1_openj9-0.57.0/ibm-semeru-open-jdk_s390x_linux_21.0.10.1.tar.gz'; ;; *) echo "Unsupported arch: ${ARCH}"; exit 1; ;; esac; curl -LfsSo /tmp/openjdk.tar.gz ${BINARY_URL}; echo "${ESUM} */tmp/openjdk.tar.gz" | sha256sum -c -; mkdir -p /opt/java/openjdk; cd /opt/java/openjdk; tar -xf /tmp/openjdk.tar.gz --strip-components=1; rm -rf /tmp/openjdk.tar.gz; # buildkit

2026-03-03 20:15:25 UTC (buildkit.dockerfile.v0)

ENV JAVA_HOME=/opt/java/openjdk PATH=/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

2026-03-03 20:15:25 UTC (buildkit.dockerfile.v0)

ENV JAVA_TOOL_OPTIONS=-XX:+IgnoreUnrecognizedVMOptions -XX:+PortableSharedCache -XX:+IdleTuningGcOnIdle -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,readonly,nonFatal

2026-03-03 20:16:28 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; unset OPENJ9_JAVA_OPTIONS; SCC_SIZE="50m"; DOWNLOAD_PATH_TOMCAT=/tmp/tomcat; INSTALL_PATH_TOMCAT=/opt/tomcat-home; export CATALINA_PID=/opt/tomcat-home/tomcat.pid; TOMCAT_CHECKSUM="8e6fa92883c161523269560a7dc9e8d58fd1199b29c630f681aa3ec2975b59d94674d2881331076b55f5ee0439748931d87c099c79d7bcea909303739e612e4b"; TOMCAT_VERSION="9.0.115"; TOMCAT_FILENAME="apache-tomcat-${TOMCAT_VERSION}.tar.gz"; SUCCESS=; mkdir -p "${DOWNLOAD_PATH_TOMCAT}" "${INSTALL_PATH_TOMCAT}"; for baseUrl in https://dlcdn.apache.org/tomcat/tomcat-9/v${TOMCAT_VERSION}/bin https://archive.apache.org/dist/tomcat/tomcat-9/v${TOMCAT_VERSION}/bin ; do if curl -LfsSo "${DOWNLOAD_PATH_TOMCAT}"/tomcat.tar.gz "${baseUrl}/${TOMCAT_FILENAME}" && [ -s "${DOWNLOAD_PATH_TOMCAT}"/tomcat.tar.gz ]; then SUCCESS=1; break; fi; done; [ -n "$SUCCESS" ]; echo "${TOMCAT_CHECKSUM} ${DOWNLOAD_PATH_TOMCAT}/tomcat.tar.gz" | sha512sum -c -; tar -xf "${DOWNLOAD_PATH_TOMCAT}"/tomcat.tar.gz -C "${INSTALL_PATH_TOMCAT}" --strip-components=1; rm -rf "${DOWNLOAD_PATH_TOMCAT}"; java -Xshareclasses:name=dry_run_scc,cacheDir=/opt/java/.scc,bootClassesOnly,nonFatal,createLayer -Xscmx$SCC_SIZE -version; export OPENJ9_JAVA_OPTIONS="-XX:+IProfileDuringStartupPhase -Xshareclasses:name=dry_run_scc,cacheDir=/opt/java/.scc,bootClassesOnly,nonFatal"; "${INSTALL_PATH_TOMCAT}"/bin/startup.sh; sleep 20; "${INSTALL_PATH_TOMCAT}"/bin/shutdown.sh -force; sleep 15; FULL=$( (java -Xshareclasses:name=dry_run_scc,cacheDir=/opt/java/.scc,printallStats 2>&1 || true) | awk '/^Cache is [0-9.]*% .*full/ {print substr($3, 1, length($3)-1)}'); DST_CACHE=$(java -Xshareclasses:name=dry_run_scc,cacheDir=/opt/java/.scc,destroy 2>&1 || true); SCC_SIZE=$(echo $SCC_SIZE | sed 's/.$//'); SCC_SIZE=$(awk "BEGIN {print int($SCC_SIZE * $FULL / 100.0)}"); [ "${SCC_SIZE}" -eq 0 ] && SCC_SIZE=1; SCC_SIZE="${SCC_SIZE}m"; java -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,bootClassesOnly,nonFatal,createLayer -Xscmx$SCC_SIZE -version; unset OPENJ9_JAVA_OPTIONS; export OPENJ9_JAVA_OPTIONS="-XX:+IProfileDuringStartupPhase -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,bootClassesOnly,nonFatal"; "${INSTALL_PATH_TOMCAT}"/bin/startup.sh; sleep 20; "${INSTALL_PATH_TOMCAT}"/bin/shutdown.sh -force; sleep 5; FULL=$( (java -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,printallStats 2>&1 || true) | awk '/^Cache is [0-9.]*% .*full/ {print substr($3, 1, length($3)-1)}'); echo "SCC layer is $FULL% full."; rm -rf "${INSTALL_PATH_TOMCAT}"; unset CATALINA_PID; if [ -d "/opt/java/.scc" ]; then chmod -R 0777 /opt/java/.scc; fi; echo "SCC generation phase completed"; # buildkit

2026-03-09 19:13:18 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c apt-get update && apt-get install -y git openssh-client --no-install-recommends && rm -rf /var/lib/apt/lists/* # buildkit

2026-03-09 19:13:18 UTC (buildkit.dockerfile.v0)

LABEL org.opencontainers.image.title=Apache Maven

2026-03-09 19:13:18 UTC (buildkit.dockerfile.v0)

LABEL org.opencontainers.image.source=https://github.com/carlossg/docker-maven

2026-03-09 19:13:18 UTC (buildkit.dockerfile.v0)

LABEL org.opencontainers.image.url=https://github.com/carlossg/docker-maven

2026-03-09 19:13:18 UTC (buildkit.dockerfile.v0)

LABEL org.opencontainers.image.description=Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information.

2026-03-09 19:13:18 UTC (buildkit.dockerfile.v0)

ENV MAVEN_HOME=/usr/share/maven

2026-03-09 19:13:18 UTC (buildkit.dockerfile.v0)

COPY /usr/share/maven /usr/share/maven # buildkit

2026-03-09 19:13:18 UTC (buildkit.dockerfile.v0)

COPY /usr/local/bin/mvn-entrypoint.sh /usr/local/bin/mvn-entrypoint.sh # buildkit

2026-03-09 19:13:18 UTC (buildkit.dockerfile.v0)

COPY /usr/share/maven/ref/settings-docker.xml /usr/share/maven/ref/settings-docker.xml # buildkit

2026-03-09 19:13:18 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c ln -s ${MAVEN_HOME}/bin/mvn /usr/bin/mvn # buildkit

2026-03-09 19:13:18 UTC (buildkit.dockerfile.v0)

ARG MAVEN_VERSION=3.9.13

2026-03-09 19:13:18 UTC (buildkit.dockerfile.v0)

ARG USER_HOME_DIR=/root

2026-03-09 19:13:18 UTC (buildkit.dockerfile.v0)

ENV MAVEN_CONFIG=/root/.m2

2026-03-09 19:13:18 UTC (buildkit.dockerfile.v0)

ENTRYPOINT ["/usr/local/bin/mvn-entrypoint.sh"]

2026-03-09 19:13:18 UTC (buildkit.dockerfile.v0)

CMD ["mvn"]

Details
Created

2026-03-09 19:13:34 UTC

Size

302 MB

Content Digest
Labels
  • org.opencontainers.image.description
    Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information.
  • org.opencontainers.image.ref.name
    ubuntu
  • org.opencontainers.image.source
    https://github.com/carlossg/docker-maven
  • org.opencontainers.image.title
    Apache Maven
  • org.opencontainers.image.url
    https://github.com/carlossg/docker-maven
  • org.opencontainers.image.version
    24.04

Environment
JAVA_HOME

/opt/java/openjdk

JAVA_TOOL_OPTIONS

-XX:+IgnoreUnrecognizedVMOptions -XX:+PortableSharedCache -XX:+IdleTuningGcOnIdle -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,readonly,nonFatal

JAVA_VERSION

jdk-21.0.10+7.1_openj9-0.57.0

LANG

en_US.UTF-8

LANGUAGE

en_US:en

LC_ALL

en_US.UTF-8

MAVEN_CONFIG

/root/.m2

MAVEN_HOME

/usr/share/maven

PATH

/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin


Layers

[#000] sha256:66a4bbbfab887561d75f1fdb3c6221c974346f82c9229f5ef99f96b7e6c25704 - 9.13% (27.5 MB)

[#001] sha256:cde3e19dda977ff221e698fd873e2dc993b34639ee21865a502f204e3291d729 - 4.06% (12.2 MB)

[#002] sha256:3783232e096d8920b3fe84716e5f6fe9db43324416f9614144ef20227a45ccc5 - 74.65% (225 MB)

[#003] sha256:2a79c120dc93aeb41c4636ddc1472cf8096e3b21c83bf643f8f7b1575d4cac39 - 1.93% (5.83 MB)

[#004] sha256:cd6658333ff39bdcbc32e22808c3ff623ceed19bd893431332b3a70f708fbe9e - 7.16% (21.6 MB)

[#005] sha256:4c5074c2c571c997cb135facc020ae3aff9a0277a2b99e8c913d54449bf4251d - 3.07% (9.25 MB)

[#006] sha256:145b3206e826e466743127e79fb0a27a43ceb58a37e5c73d16d8105e7c11dc71 - 0.0% (851 Bytes)

[#007] sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 - 0.0% (32 Bytes)

[#008] sha256:4d2ed63f9df2a5ec33df6745bf01603162c3d4e085d45ad9423bbbdb75377350 - 0.0% (156 Bytes)


History
2026-02-10 16:52:26 UTC

/bin/sh -c #(nop) ARG RELEASE

2026-02-10 16:52:26 UTC

/bin/sh -c #(nop) ARG LAUNCHPAD_BUILD_ARCH

2026-02-10 16:52:27 UTC

/bin/sh -c #(nop) LABEL org.opencontainers.image.ref.name=ubuntu

2026-02-10 16:52:27 UTC

/bin/sh -c #(nop) LABEL org.opencontainers.image.version=24.04

2026-02-10 16:52:29 UTC

/bin/sh -c #(nop) ADD file:25d708bf0b30ddee20c0b2764034e065aca922cafd48eb9c662e35ba02ccf1de in /

2026-02-10 16:52:29 UTC

/bin/sh -c #(nop) CMD ["/bin/bash"]

2026-03-03 20:13:24 UTC (buildkit.dockerfile.v0)

ENV LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_ALL=en_US.UTF-8

2026-03-03 20:13:24 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends tzdata curl ca-certificates fontconfig locales && echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen && locale-gen en_US.UTF-8 && rm -rf /var/lib/apt/lists/* # buildkit

2026-03-03 20:13:24 UTC (buildkit.dockerfile.v0)

ENV JAVA_VERSION=jdk-21.0.10+7.1_openj9-0.57.0

2026-03-03 20:14:59 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; ARCH="$(dpkg --print-architecture)"; case "${ARCH}" in aarch64|arm64) ESUM='fbd5af08d6abb7ac8a9707982f6759d33245e0b8b05d7ddd593cd45c0cb98e90'; BINARY_URL='https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.10+7.1_openj9-0.57.0/ibm-semeru-open-jdk_aarch64_linux_21.0.10.1.tar.gz'; ;; amd64|x86_64) ESUM='df501befcb3f6b7f47c3557d9887197d78f013beb57b0d56494176b54ad80c19'; BINARY_URL='https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.10+7.1_openj9-0.57.0/ibm-semeru-open-jdk_x64_linux_21.0.10.1.tar.gz'; ;; ppc64el|ppc64le) ESUM='c60264d4b7dbd0ad94207ed85f4c71a5263ecb7c5bb6329da120194847d44611'; BINARY_URL='https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.10+7.1_openj9-0.57.0/ibm-semeru-open-jdk_ppc64le_linux_21.0.10.1.tar.gz'; ;; s390x) ESUM='50d3a0a8d251a1826af4532a7b97874b58231b749bc44a29a61736ae1df47e69'; BINARY_URL='https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.10+7.1_openj9-0.57.0/ibm-semeru-open-jdk_s390x_linux_21.0.10.1.tar.gz'; ;; *) echo "Unsupported arch: ${ARCH}"; exit 1; ;; esac; curl -LfsSo /tmp/openjdk.tar.gz ${BINARY_URL}; echo "${ESUM} */tmp/openjdk.tar.gz" | sha256sum -c -; mkdir -p /opt/java/openjdk; cd /opt/java/openjdk; tar -xf /tmp/openjdk.tar.gz --strip-components=1; rm -rf /tmp/openjdk.tar.gz; # buildkit

2026-03-03 20:14:59 UTC (buildkit.dockerfile.v0)

ENV JAVA_HOME=/opt/java/openjdk PATH=/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

2026-03-03 20:14:59 UTC (buildkit.dockerfile.v0)

ENV JAVA_TOOL_OPTIONS=-XX:+IgnoreUnrecognizedVMOptions -XX:+PortableSharedCache -XX:+IdleTuningGcOnIdle -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,readonly,nonFatal

2026-03-03 20:16:03 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; unset OPENJ9_JAVA_OPTIONS; SCC_SIZE="50m"; DOWNLOAD_PATH_TOMCAT=/tmp/tomcat; INSTALL_PATH_TOMCAT=/opt/tomcat-home; export CATALINA_PID=/opt/tomcat-home/tomcat.pid; TOMCAT_CHECKSUM="8e6fa92883c161523269560a7dc9e8d58fd1199b29c630f681aa3ec2975b59d94674d2881331076b55f5ee0439748931d87c099c79d7bcea909303739e612e4b"; TOMCAT_VERSION="9.0.115"; TOMCAT_FILENAME="apache-tomcat-${TOMCAT_VERSION}.tar.gz"; SUCCESS=; mkdir -p "${DOWNLOAD_PATH_TOMCAT}" "${INSTALL_PATH_TOMCAT}"; for baseUrl in https://dlcdn.apache.org/tomcat/tomcat-9/v${TOMCAT_VERSION}/bin https://archive.apache.org/dist/tomcat/tomcat-9/v${TOMCAT_VERSION}/bin ; do if curl -LfsSo "${DOWNLOAD_PATH_TOMCAT}"/tomcat.tar.gz "${baseUrl}/${TOMCAT_FILENAME}" && [ -s "${DOWNLOAD_PATH_TOMCAT}"/tomcat.tar.gz ]; then SUCCESS=1; break; fi; done; [ -n "$SUCCESS" ]; echo "${TOMCAT_CHECKSUM} ${DOWNLOAD_PATH_TOMCAT}/tomcat.tar.gz" | sha512sum -c -; tar -xf "${DOWNLOAD_PATH_TOMCAT}"/tomcat.tar.gz -C "${INSTALL_PATH_TOMCAT}" --strip-components=1; rm -rf "${DOWNLOAD_PATH_TOMCAT}"; java -Xshareclasses:name=dry_run_scc,cacheDir=/opt/java/.scc,bootClassesOnly,nonFatal,createLayer -Xscmx$SCC_SIZE -version; export OPENJ9_JAVA_OPTIONS="-XX:+IProfileDuringStartupPhase -Xshareclasses:name=dry_run_scc,cacheDir=/opt/java/.scc,bootClassesOnly,nonFatal"; "${INSTALL_PATH_TOMCAT}"/bin/startup.sh; sleep 20; "${INSTALL_PATH_TOMCAT}"/bin/shutdown.sh -force; sleep 15; FULL=$( (java -Xshareclasses:name=dry_run_scc,cacheDir=/opt/java/.scc,printallStats 2>&1 || true) | awk '/^Cache is [0-9.]*% .*full/ {print substr($3, 1, length($3)-1)}'); DST_CACHE=$(java -Xshareclasses:name=dry_run_scc,cacheDir=/opt/java/.scc,destroy 2>&1 || true); SCC_SIZE=$(echo $SCC_SIZE | sed 's/.$//'); SCC_SIZE=$(awk "BEGIN {print int($SCC_SIZE * $FULL / 100.0)}"); [ "${SCC_SIZE}" -eq 0 ] && SCC_SIZE=1; SCC_SIZE="${SCC_SIZE}m"; java -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,bootClassesOnly,nonFatal,createLayer -Xscmx$SCC_SIZE -version; unset OPENJ9_JAVA_OPTIONS; export OPENJ9_JAVA_OPTIONS="-XX:+IProfileDuringStartupPhase -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,bootClassesOnly,nonFatal"; "${INSTALL_PATH_TOMCAT}"/bin/startup.sh; sleep 20; "${INSTALL_PATH_TOMCAT}"/bin/shutdown.sh -force; sleep 5; FULL=$( (java -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,printallStats 2>&1 || true) | awk '/^Cache is [0-9.]*% .*full/ {print substr($3, 1, length($3)-1)}'); echo "SCC layer is $FULL% full."; rm -rf "${INSTALL_PATH_TOMCAT}"; unset CATALINA_PID; if [ -d "/opt/java/.scc" ]; then chmod -R 0777 /opt/java/.scc; fi; echo "SCC generation phase completed"; # buildkit

2026-03-09 19:13:34 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c apt-get update && apt-get install -y git openssh-client --no-install-recommends && rm -rf /var/lib/apt/lists/* # buildkit

2026-03-09 19:13:34 UTC (buildkit.dockerfile.v0)

LABEL org.opencontainers.image.title=Apache Maven

2026-03-09 19:13:34 UTC (buildkit.dockerfile.v0)

LABEL org.opencontainers.image.source=https://github.com/carlossg/docker-maven

2026-03-09 19:13:34 UTC (buildkit.dockerfile.v0)

LABEL org.opencontainers.image.url=https://github.com/carlossg/docker-maven

2026-03-09 19:13:34 UTC (buildkit.dockerfile.v0)

LABEL org.opencontainers.image.description=Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information.

2026-03-09 19:13:34 UTC (buildkit.dockerfile.v0)

ENV MAVEN_HOME=/usr/share/maven

2026-03-09 19:13:34 UTC (buildkit.dockerfile.v0)

COPY /usr/share/maven /usr/share/maven # buildkit

2026-03-09 19:13:34 UTC (buildkit.dockerfile.v0)

COPY /usr/local/bin/mvn-entrypoint.sh /usr/local/bin/mvn-entrypoint.sh # buildkit

2026-03-09 19:13:34 UTC (buildkit.dockerfile.v0)

COPY /usr/share/maven/ref/settings-docker.xml /usr/share/maven/ref/settings-docker.xml # buildkit

2026-03-09 19:13:34 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c ln -s ${MAVEN_HOME}/bin/mvn /usr/bin/mvn # buildkit

2026-03-09 19:13:34 UTC (buildkit.dockerfile.v0)

ARG MAVEN_VERSION=3.9.13

2026-03-09 19:13:34 UTC (buildkit.dockerfile.v0)

ARG USER_HOME_DIR=/root

2026-03-09 19:13:34 UTC (buildkit.dockerfile.v0)

ENV MAVEN_CONFIG=/root/.m2

2026-03-09 19:13:34 UTC (buildkit.dockerfile.v0)

ENTRYPOINT ["/usr/local/bin/mvn-entrypoint.sh"]

2026-03-09 19:13:34 UTC (buildkit.dockerfile.v0)

CMD ["mvn"]

Details
Created

2026-03-09 21:20:12 UTC

Size

319 MB

Content Digest
Labels
  • org.opencontainers.image.description
    Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information.
  • org.opencontainers.image.ref.name
    ubuntu
  • org.opencontainers.image.source
    https://github.com/carlossg/docker-maven
  • org.opencontainers.image.title
    Apache Maven
  • org.opencontainers.image.url
    https://github.com/carlossg/docker-maven
  • org.opencontainers.image.version
    24.04

Environment
JAVA_HOME

/opt/java/openjdk

JAVA_TOOL_OPTIONS

-XX:+IgnoreUnrecognizedVMOptions -XX:+PortableSharedCache -XX:+IdleTuningGcOnIdle -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,readonly,nonFatal

JAVA_VERSION

jdk-21.0.10+7.1_openj9-0.57.0

LANG

en_US.UTF-8

LANGUAGE

en_US:en

LC_ALL

en_US.UTF-8

MAVEN_CONFIG

/root/.m2

MAVEN_HOME

/usr/share/maven

PATH

/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin


Layers

[#000] sha256:de86bbb8cdc5c52dc9167f3fab22b2f39424ccbfd06ab6c7b34bb3456cf0ad43 - 10.27% (32.7 MB)

[#001] sha256:17bc74705b5205a118b6fdfc67d17a8b658c02f7792610bbbab1a9a9579b5bc8 - 4.13% (13.2 MB)

[#002] sha256:22cf6d69c6268cc75f42bb22e73f96e20ad3319d99eeb912e715b5818da02017 - 72.98% (232 MB)

[#003] sha256:1ce4a2bad383f4b776809b65469b00f1a0efdcf09f26f12772d61c484153b48e - 1.55% (4.93 MB)

[#004] sha256:50982d006df8d874d7c64cbae64b20576af714a7a9c24331e04c1c6606a4df34 - 8.17% (26 MB)

[#005] sha256:cf1c10673ce0432c0be313fbac9483e0ec03aa20f80c6b101a1ba6509fda1429 - 2.9% (9.25 MB)

[#006] sha256:598bf368e32705b807240a2bff64f7cce841642cff62a24bf855944cfc1b5d3f - 0.0% (852 Bytes)

[#007] sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 - 0.0% (32 Bytes)

[#008] sha256:923f1dc5e8f783fb7ab445c4b6942a3de6027b6e07a22e77b47f53d9dedff45e - 0.0% (155 Bytes)


History
2026-02-10 16:50:31 UTC

/bin/sh -c #(nop) ARG RELEASE

2026-02-10 16:50:31 UTC

/bin/sh -c #(nop) ARG LAUNCHPAD_BUILD_ARCH

2026-02-10 16:50:31 UTC

/bin/sh -c #(nop) LABEL org.opencontainers.image.ref.name=ubuntu

2026-02-10 16:50:31 UTC

/bin/sh -c #(nop) LABEL org.opencontainers.image.version=24.04

2026-02-10 16:50:35 UTC

/bin/sh -c #(nop) ADD file:993db8d05f03953198d71fcb66f9a9dca68dcfd7ca7b3e4a866954aa297b35ce in /

2026-02-10 16:50:35 UTC

/bin/sh -c #(nop) CMD ["/bin/bash"]

2026-02-17 20:28:56 UTC (buildkit.dockerfile.v0)

ENV LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_ALL=en_US.UTF-8

2026-02-17 20:28:56 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends tzdata curl ca-certificates fontconfig locales && echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen && locale-gen en_US.UTF-8 && rm -rf /var/lib/apt/lists/* # buildkit

2026-02-17 20:28:56 UTC (buildkit.dockerfile.v0)

ENV JAVA_VERSION=jdk-21.0.10+7.1_openj9-0.57.0

2026-03-03 20:19:46 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; ARCH="$(dpkg --print-architecture)"; case "${ARCH}" in aarch64|arm64) ESUM='fbd5af08d6abb7ac8a9707982f6759d33245e0b8b05d7ddd593cd45c0cb98e90'; BINARY_URL='https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.10+7.1_openj9-0.57.0/ibm-semeru-open-jdk_aarch64_linux_21.0.10.1.tar.gz'; ;; amd64|x86_64) ESUM='df501befcb3f6b7f47c3557d9887197d78f013beb57b0d56494176b54ad80c19'; BINARY_URL='https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.10+7.1_openj9-0.57.0/ibm-semeru-open-jdk_x64_linux_21.0.10.1.tar.gz'; ;; ppc64el|ppc64le) ESUM='c60264d4b7dbd0ad94207ed85f4c71a5263ecb7c5bb6329da120194847d44611'; BINARY_URL='https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.10+7.1_openj9-0.57.0/ibm-semeru-open-jdk_ppc64le_linux_21.0.10.1.tar.gz'; ;; s390x) ESUM='50d3a0a8d251a1826af4532a7b97874b58231b749bc44a29a61736ae1df47e69'; BINARY_URL='https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.10+7.1_openj9-0.57.0/ibm-semeru-open-jdk_s390x_linux_21.0.10.1.tar.gz'; ;; *) echo "Unsupported arch: ${ARCH}"; exit 1; ;; esac; curl -LfsSo /tmp/openjdk.tar.gz ${BINARY_URL}; echo "${ESUM} */tmp/openjdk.tar.gz" | sha256sum -c -; mkdir -p /opt/java/openjdk; cd /opt/java/openjdk; tar -xf /tmp/openjdk.tar.gz --strip-components=1; rm -rf /tmp/openjdk.tar.gz; # buildkit

2026-03-03 20:19:46 UTC (buildkit.dockerfile.v0)

ENV JAVA_HOME=/opt/java/openjdk PATH=/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

2026-03-03 20:19:46 UTC (buildkit.dockerfile.v0)

ENV JAVA_TOOL_OPTIONS=-XX:+IgnoreUnrecognizedVMOptions -XX:+PortableSharedCache -XX:+IdleTuningGcOnIdle -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,readonly,nonFatal

2026-03-03 20:20:52 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; unset OPENJ9_JAVA_OPTIONS; SCC_SIZE="50m"; DOWNLOAD_PATH_TOMCAT=/tmp/tomcat; INSTALL_PATH_TOMCAT=/opt/tomcat-home; export CATALINA_PID=/opt/tomcat-home/tomcat.pid; TOMCAT_CHECKSUM="8e6fa92883c161523269560a7dc9e8d58fd1199b29c630f681aa3ec2975b59d94674d2881331076b55f5ee0439748931d87c099c79d7bcea909303739e612e4b"; TOMCAT_VERSION="9.0.115"; TOMCAT_FILENAME="apache-tomcat-${TOMCAT_VERSION}.tar.gz"; SUCCESS=; mkdir -p "${DOWNLOAD_PATH_TOMCAT}" "${INSTALL_PATH_TOMCAT}"; for baseUrl in https://dlcdn.apache.org/tomcat/tomcat-9/v${TOMCAT_VERSION}/bin https://archive.apache.org/dist/tomcat/tomcat-9/v${TOMCAT_VERSION}/bin ; do if curl -LfsSo "${DOWNLOAD_PATH_TOMCAT}"/tomcat.tar.gz "${baseUrl}/${TOMCAT_FILENAME}" && [ -s "${DOWNLOAD_PATH_TOMCAT}"/tomcat.tar.gz ]; then SUCCESS=1; break; fi; done; [ -n "$SUCCESS" ]; echo "${TOMCAT_CHECKSUM} ${DOWNLOAD_PATH_TOMCAT}/tomcat.tar.gz" | sha512sum -c -; tar -xf "${DOWNLOAD_PATH_TOMCAT}"/tomcat.tar.gz -C "${INSTALL_PATH_TOMCAT}" --strip-components=1; rm -rf "${DOWNLOAD_PATH_TOMCAT}"; java -Xshareclasses:name=dry_run_scc,cacheDir=/opt/java/.scc,bootClassesOnly,nonFatal,createLayer -Xscmx$SCC_SIZE -version; export OPENJ9_JAVA_OPTIONS="-XX:+IProfileDuringStartupPhase -Xshareclasses:name=dry_run_scc,cacheDir=/opt/java/.scc,bootClassesOnly,nonFatal"; "${INSTALL_PATH_TOMCAT}"/bin/startup.sh; sleep 20; "${INSTALL_PATH_TOMCAT}"/bin/shutdown.sh -force; sleep 15; FULL=$( (java -Xshareclasses:name=dry_run_scc,cacheDir=/opt/java/.scc,printallStats 2>&1 || true) | awk '/^Cache is [0-9.]*% .*full/ {print substr($3, 1, length($3)-1)}'); DST_CACHE=$(java -Xshareclasses:name=dry_run_scc,cacheDir=/opt/java/.scc,destroy 2>&1 || true); SCC_SIZE=$(echo $SCC_SIZE | sed 's/.$//'); SCC_SIZE=$(awk "BEGIN {print int($SCC_SIZE * $FULL / 100.0)}"); [ "${SCC_SIZE}" -eq 0 ] && SCC_SIZE=1; SCC_SIZE="${SCC_SIZE}m"; java -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,bootClassesOnly,nonFatal,createLayer -Xscmx$SCC_SIZE -version; unset OPENJ9_JAVA_OPTIONS; export OPENJ9_JAVA_OPTIONS="-XX:+IProfileDuringStartupPhase -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,bootClassesOnly,nonFatal"; "${INSTALL_PATH_TOMCAT}"/bin/startup.sh; sleep 20; "${INSTALL_PATH_TOMCAT}"/bin/shutdown.sh -force; sleep 5; FULL=$( (java -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,printallStats 2>&1 || true) | awk '/^Cache is [0-9.]*% .*full/ {print substr($3, 1, length($3)-1)}'); echo "SCC layer is $FULL% full."; rm -rf "${INSTALL_PATH_TOMCAT}"; unset CATALINA_PID; if [ -d "/opt/java/.scc" ]; then chmod -R 0777 /opt/java/.scc; fi; echo "SCC generation phase completed"; # buildkit

2026-03-09 21:20:06 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c apt-get update && apt-get install -y git openssh-client --no-install-recommends && rm -rf /var/lib/apt/lists/* # buildkit

2026-03-09 21:20:08 UTC (buildkit.dockerfile.v0)

LABEL org.opencontainers.image.title=Apache Maven

2026-03-09 21:20:08 UTC (buildkit.dockerfile.v0)

LABEL org.opencontainers.image.source=https://github.com/carlossg/docker-maven

2026-03-09 21:20:08 UTC (buildkit.dockerfile.v0)

LABEL org.opencontainers.image.url=https://github.com/carlossg/docker-maven

2026-03-09 21:20:08 UTC (buildkit.dockerfile.v0)

LABEL org.opencontainers.image.description=Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information.

2026-03-09 21:20:08 UTC (buildkit.dockerfile.v0)

ENV MAVEN_HOME=/usr/share/maven

2026-03-09 21:20:08 UTC (buildkit.dockerfile.v0)

COPY /usr/share/maven /usr/share/maven # buildkit

2026-03-09 21:20:10 UTC (buildkit.dockerfile.v0)

COPY /usr/local/bin/mvn-entrypoint.sh /usr/local/bin/mvn-entrypoint.sh # buildkit

2026-03-09 21:20:11 UTC (buildkit.dockerfile.v0)

COPY /usr/share/maven/ref/settings-docker.xml /usr/share/maven/ref/settings-docker.xml # buildkit

2026-03-09 21:20:12 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c ln -s ${MAVEN_HOME}/bin/mvn /usr/bin/mvn # buildkit

2026-03-09 21:20:12 UTC (buildkit.dockerfile.v0)

ARG MAVEN_VERSION=3.9.13

2026-03-09 21:20:12 UTC (buildkit.dockerfile.v0)

ARG USER_HOME_DIR=/root

2026-03-09 21:20:12 UTC (buildkit.dockerfile.v0)

ENV MAVEN_CONFIG=/root/.m2

2026-03-09 21:20:12 UTC (buildkit.dockerfile.v0)

ENTRYPOINT ["/usr/local/bin/mvn-entrypoint.sh"]

2026-03-09 21:20:12 UTC (buildkit.dockerfile.v0)

CMD ["mvn"]

Details
Created

2026-03-09 19:12:17 UTC

Size

306 MB

Content Digest
Labels
  • org.opencontainers.image.description
    Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information.
  • org.opencontainers.image.ref.name
    ubuntu
  • org.opencontainers.image.source
    https://github.com/carlossg/docker-maven
  • org.opencontainers.image.title
    Apache Maven
  • org.opencontainers.image.url
    https://github.com/carlossg/docker-maven
  • org.opencontainers.image.version
    24.04

Environment
JAVA_HOME

/opt/java/openjdk

JAVA_TOOL_OPTIONS

-XX:+IgnoreUnrecognizedVMOptions -XX:+PortableSharedCache -XX:+IdleTuningGcOnIdle -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,readonly,nonFatal

JAVA_VERSION

jdk-21.0.10+7.1_openj9-0.57.0

LANG

en_US.UTF-8

LANGUAGE

en_US:en

LC_ALL

en_US.UTF-8

MAVEN_CONFIG

/root/.m2

MAVEN_HOME

/usr/share/maven

PATH

/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin


Layers

[#000] sha256:8b6ba492713239cba0554ce53d24405e1285684fa64bcfb05df4af8037ba5836 - 9.32% (28.5 MB)

[#001] sha256:04bcd92c2ade66e9c2a1566b895fe6b4957e867dcc493ac9527534c782f8346b - 4.09% (12.5 MB)

[#002] sha256:2863350059c5d0c953efb459da23b2122f798fa196f8a862356ab629f94ec91b - 73.95% (226 MB)

[#003] sha256:ae9ac868dcb6f83baeab5dee4098a5403ac4a7e5616c317bb877ed2b4a1f9eeb - 2.06% (6.29 MB)

[#004] sha256:7b6d8431b70c6be0fb82498514b6b45ee82513b74bda723c05b87f50e59b435a - 7.57% (23.2 MB)

[#005] sha256:66a905cc1526f4bd0cce1c24db33a63afbb619dba7a1f825e79be2576fefd706 - 3.02% (9.25 MB)

[#006] sha256:ffaf4e8bdc8e847fd4b764e2d9d766d405bc358eb336ef90bbe598c02de828f7 - 0.0% (848 Bytes)

[#007] sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 - 0.0% (32 Bytes)

[#008] sha256:bfe038822a6e7e6b9fbcea881567fda4facf748ded32c1a66df85c14d0125bba - 0.0% (156 Bytes)


History
2026-02-10 16:50:51 UTC

/bin/sh -c #(nop) ARG RELEASE

2026-02-10 16:50:51 UTC

/bin/sh -c #(nop) ARG LAUNCHPAD_BUILD_ARCH

2026-02-10 16:50:51 UTC

/bin/sh -c #(nop) LABEL org.opencontainers.image.ref.name=ubuntu

2026-02-10 16:50:51 UTC

/bin/sh -c #(nop) LABEL org.opencontainers.image.version=24.04

2026-02-10 16:50:52 UTC

/bin/sh -c #(nop) ADD file:be1799101a7a15f881e3aebea1e86fa6a156760dc7688b1affe179e948814a3b in /

2026-02-10 16:50:52 UTC

/bin/sh -c #(nop) CMD ["/bin/bash"]

2026-02-17 20:17:41 UTC (buildkit.dockerfile.v0)

ENV LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_ALL=en_US.UTF-8

2026-02-17 20:17:41 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends tzdata curl ca-certificates fontconfig locales && echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen && locale-gen en_US.UTF-8 && rm -rf /var/lib/apt/lists/* # buildkit

2026-02-17 20:17:41 UTC (buildkit.dockerfile.v0)

ENV JAVA_VERSION=jdk-21.0.10+7.1_openj9-0.57.0

2026-03-03 21:29:26 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; ARCH="$(dpkg --print-architecture)"; case "${ARCH}" in aarch64|arm64) ESUM='fbd5af08d6abb7ac8a9707982f6759d33245e0b8b05d7ddd593cd45c0cb98e90'; BINARY_URL='https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.10+7.1_openj9-0.57.0/ibm-semeru-open-jdk_aarch64_linux_21.0.10.1.tar.gz'; ;; amd64|x86_64) ESUM='df501befcb3f6b7f47c3557d9887197d78f013beb57b0d56494176b54ad80c19'; BINARY_URL='https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.10+7.1_openj9-0.57.0/ibm-semeru-open-jdk_x64_linux_21.0.10.1.tar.gz'; ;; ppc64el|ppc64le) ESUM='c60264d4b7dbd0ad94207ed85f4c71a5263ecb7c5bb6329da120194847d44611'; BINARY_URL='https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.10+7.1_openj9-0.57.0/ibm-semeru-open-jdk_ppc64le_linux_21.0.10.1.tar.gz'; ;; s390x) ESUM='50d3a0a8d251a1826af4532a7b97874b58231b749bc44a29a61736ae1df47e69'; BINARY_URL='https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.10+7.1_openj9-0.57.0/ibm-semeru-open-jdk_s390x_linux_21.0.10.1.tar.gz'; ;; *) echo "Unsupported arch: ${ARCH}"; exit 1; ;; esac; curl -LfsSo /tmp/openjdk.tar.gz ${BINARY_URL}; echo "${ESUM} */tmp/openjdk.tar.gz" | sha256sum -c -; mkdir -p /opt/java/openjdk; cd /opt/java/openjdk; tar -xf /tmp/openjdk.tar.gz --strip-components=1; rm -rf /tmp/openjdk.tar.gz; # buildkit

2026-03-03 21:29:26 UTC (buildkit.dockerfile.v0)

ENV JAVA_HOME=/opt/java/openjdk PATH=/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

2026-03-03 21:29:26 UTC (buildkit.dockerfile.v0)

ENV JAVA_TOOL_OPTIONS=-XX:+IgnoreUnrecognizedVMOptions -XX:+PortableSharedCache -XX:+IdleTuningGcOnIdle -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,readonly,nonFatal

2026-03-03 21:30:31 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; unset OPENJ9_JAVA_OPTIONS; SCC_SIZE="50m"; DOWNLOAD_PATH_TOMCAT=/tmp/tomcat; INSTALL_PATH_TOMCAT=/opt/tomcat-home; export CATALINA_PID=/opt/tomcat-home/tomcat.pid; TOMCAT_CHECKSUM="8e6fa92883c161523269560a7dc9e8d58fd1199b29c630f681aa3ec2975b59d94674d2881331076b55f5ee0439748931d87c099c79d7bcea909303739e612e4b"; TOMCAT_VERSION="9.0.115"; TOMCAT_FILENAME="apache-tomcat-${TOMCAT_VERSION}.tar.gz"; SUCCESS=; mkdir -p "${DOWNLOAD_PATH_TOMCAT}" "${INSTALL_PATH_TOMCAT}"; for baseUrl in https://dlcdn.apache.org/tomcat/tomcat-9/v${TOMCAT_VERSION}/bin https://archive.apache.org/dist/tomcat/tomcat-9/v${TOMCAT_VERSION}/bin ; do if curl -LfsSo "${DOWNLOAD_PATH_TOMCAT}"/tomcat.tar.gz "${baseUrl}/${TOMCAT_FILENAME}" && [ -s "${DOWNLOAD_PATH_TOMCAT}"/tomcat.tar.gz ]; then SUCCESS=1; break; fi; done; [ -n "$SUCCESS" ]; echo "${TOMCAT_CHECKSUM} ${DOWNLOAD_PATH_TOMCAT}/tomcat.tar.gz" | sha512sum -c -; tar -xf "${DOWNLOAD_PATH_TOMCAT}"/tomcat.tar.gz -C "${INSTALL_PATH_TOMCAT}" --strip-components=1; rm -rf "${DOWNLOAD_PATH_TOMCAT}"; java -Xshareclasses:name=dry_run_scc,cacheDir=/opt/java/.scc,bootClassesOnly,nonFatal,createLayer -Xscmx$SCC_SIZE -version; export OPENJ9_JAVA_OPTIONS="-XX:+IProfileDuringStartupPhase -Xshareclasses:name=dry_run_scc,cacheDir=/opt/java/.scc,bootClassesOnly,nonFatal"; "${INSTALL_PATH_TOMCAT}"/bin/startup.sh; sleep 20; "${INSTALL_PATH_TOMCAT}"/bin/shutdown.sh -force; sleep 15; FULL=$( (java -Xshareclasses:name=dry_run_scc,cacheDir=/opt/java/.scc,printallStats 2>&1 || true) | awk '/^Cache is [0-9.]*% .*full/ {print substr($3, 1, length($3)-1)}'); DST_CACHE=$(java -Xshareclasses:name=dry_run_scc,cacheDir=/opt/java/.scc,destroy 2>&1 || true); SCC_SIZE=$(echo $SCC_SIZE | sed 's/.$//'); SCC_SIZE=$(awk "BEGIN {print int($SCC_SIZE * $FULL / 100.0)}"); [ "${SCC_SIZE}" -eq 0 ] && SCC_SIZE=1; SCC_SIZE="${SCC_SIZE}m"; java -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,bootClassesOnly,nonFatal,createLayer -Xscmx$SCC_SIZE -version; unset OPENJ9_JAVA_OPTIONS; export OPENJ9_JAVA_OPTIONS="-XX:+IProfileDuringStartupPhase -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,bootClassesOnly,nonFatal"; "${INSTALL_PATH_TOMCAT}"/bin/startup.sh; sleep 20; "${INSTALL_PATH_TOMCAT}"/bin/shutdown.sh -force; sleep 5; FULL=$( (java -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,printallStats 2>&1 || true) | awk '/^Cache is [0-9.]*% .*full/ {print substr($3, 1, length($3)-1)}'); echo "SCC layer is $FULL% full."; rm -rf "${INSTALL_PATH_TOMCAT}"; unset CATALINA_PID; if [ -d "/opt/java/.scc" ]; then chmod -R 0777 /opt/java/.scc; fi; echo "SCC generation phase completed"; # buildkit

2026-03-09 19:12:17 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c apt-get update && apt-get install -y git openssh-client --no-install-recommends && rm -rf /var/lib/apt/lists/* # buildkit

2026-03-09 19:12:17 UTC (buildkit.dockerfile.v0)

LABEL org.opencontainers.image.title=Apache Maven

2026-03-09 19:12:17 UTC (buildkit.dockerfile.v0)

LABEL org.opencontainers.image.source=https://github.com/carlossg/docker-maven

2026-03-09 19:12:17 UTC (buildkit.dockerfile.v0)

LABEL org.opencontainers.image.url=https://github.com/carlossg/docker-maven

2026-03-09 19:12:17 UTC (buildkit.dockerfile.v0)

LABEL org.opencontainers.image.description=Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information.

2026-03-09 19:12:17 UTC (buildkit.dockerfile.v0)

ENV MAVEN_HOME=/usr/share/maven

2026-03-09 19:12:17 UTC (buildkit.dockerfile.v0)

COPY /usr/share/maven /usr/share/maven # buildkit

2026-03-09 19:12:17 UTC (buildkit.dockerfile.v0)

COPY /usr/local/bin/mvn-entrypoint.sh /usr/local/bin/mvn-entrypoint.sh # buildkit

2026-03-09 19:12:17 UTC (buildkit.dockerfile.v0)

COPY /usr/share/maven/ref/settings-docker.xml /usr/share/maven/ref/settings-docker.xml # buildkit

2026-03-09 19:12:17 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c ln -s ${MAVEN_HOME}/bin/mvn /usr/bin/mvn # buildkit

2026-03-09 19:12:17 UTC (buildkit.dockerfile.v0)

ARG MAVEN_VERSION=3.9.13

2026-03-09 19:12:17 UTC (buildkit.dockerfile.v0)

ARG USER_HOME_DIR=/root

2026-03-09 19:12:17 UTC (buildkit.dockerfile.v0)

ENV MAVEN_CONFIG=/root/.m2

2026-03-09 19:12:17 UTC (buildkit.dockerfile.v0)

ENTRYPOINT ["/usr/local/bin/mvn-entrypoint.sh"]

2026-03-09 19:12:17 UTC (buildkit.dockerfile.v0)

CMD ["mvn"]

Danger Zone
Delete Tag

Please be careful as this will not just delete the reference but also the actual content!

For example when you have latest and v1.2.3 both pointing to the same image
the deletion of latest will also permanently remove v1.2.3.

Delete