Namespace
library
Image / Tag
tomcat:9.0.122-jdk25-temurin
Content Digest
sha256:6082ef006d6bfb9d2ab0d3d5e6008e9b18c0d7e3dd54227c5e27ee408f237118
Details
Created

2026-09-25 23:14:48 UTC

Size

149 MB

Content Digest
Labels
  • org.opencontainers.image.version
    24.04

Environment
CATALINA_HOME

/usr/local/tomcat

JAVA_HOME

/opt/java/openjdk

JAVA_VERSION

jdk-25.0.4.1+1

LANG

en_US.UTF-8

LANGUAGE

en_US:en

LC_ALL

en_US.UTF-8

LD_LIBRARY_PATH

/usr/local/tomcat/native-jni-lib

PATH

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

TOMCAT_MAJOR

9

TOMCAT_NATIVE_LIBDIR

/usr/local/tomcat/native-jni-lib

TOMCAT_SHA512

1f2f7d822a407999d954e7eb4fb1e78998c2a9372bb466d27e8cefd2521ef779183744f39dfa50a77ce3b798e7fe30bf2fd43fd1d6a2e6135617af1ddda6ba2a

TOMCAT_VERSION

9.0.122


Layers

[#000] sha256:edd1ed89f0d443580bd42e5a10cd8736aba5a3438b2a0645c2ebb50119bb0eba - 19.02% (28.4 MB)

[#001] sha256:89cc57adce47395fc97d33fb6ea961d8b01a24d6eaef9de6e95a36a86ab75203 - 11.15% (16.6 MB)

[#002] sha256:7130478a3071ff7cbf32c7c33fcf23e4458bc6db6e944c3d56def97df7515b3b - 59.27% (88.5 MB)

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

[#004] sha256:e0cb599785649a9d8c459aba072f2e42960e7a53ac2c70e1803cdd6ca04b8181 - 0.0% (2.41 KB)

[#005] sha256:19c6ede5e9d0c8e6702f35b9742747241c7712aaf4e778218605c59f90afbb29 - 0.0% (137 Bytes)

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

[#007] sha256:6e4db800e80b1f7f1837254e40f7e4ba762cd9e7e969b9f6f69d43753a038e70 - 10.56% (15.8 MB)

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


History
2026-09-11 11:44:03 UTC

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

2026-09-11 11:44:03 UTC

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

2026-09-11 11:44:03 UTC

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

2026-09-11 11:44:06 UTC

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

2026-09-11 11:44:06 UTC

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

2026-09-25 22:38:51 UTC (buildkit.dockerfile.v0)

ENV JAVA_HOME=/opt/java/openjdk

2026-09-25 22:38:51 UTC (buildkit.dockerfile.v0)

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

2026-09-25 22:38:51 UTC (buildkit.dockerfile.v0)

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

2026-09-25 22:38:51 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; apt-get update; DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends fontconfig ca-certificates p11-kit binutils tzdata 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-09-25 22:38:51 UTC (buildkit.dockerfile.v0)

ENV JAVA_VERSION=jdk-25.0.4.1+1

2026-09-25 22:39:10 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; ARCH="$(dpkg --print-architecture)"; case "${ARCH}" in amd64) ESUM='dbb698396d478e7fa2b1e50f4103324b2a99b90569ee27c33f2261f9215cf41e'; BINARY_URL='https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.4.1%2B1/OpenJDK25U-jdk_x64_linux_hotspot_25.0.4.1_1.tar.gz'; ;; arm64) ESUM='69df11a02cfa3ef7d7ca645e03edce6778ec090e100f6ae2b42097865730ac52'; BINARY_URL='https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.4.1%2B1/OpenJDK25U-jdk_aarch64_linux_hotspot_25.0.4.1_1.tar.gz'; ;; ppc64el) ESUM='b508ca140557322c73da4278d21004b22480b894ffdc67a8795d7814afd8775c'; BINARY_URL='https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.4.1%2B1/OpenJDK25U-jdk_ppc64le_linux_hotspot_25.0.4.1_1.tar.gz'; ;; riscv64) ESUM='8dbef2b12ceaecec9b5f00d7f568309b7e3525137777736abfc65900c054ccf9'; BINARY_URL='https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.4.1%2B1/OpenJDK25U-jdk_riscv64_linux_hotspot_25.0.4.1_1.tar.gz'; ;; s390x) ESUM='012d4fe2be909a80c64675ab579877dd9b1db1eff6c7b327eed87b907706f819'; BINARY_URL='https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.4.1%2B1/OpenJDK25U-jdk_s390x_linux_hotspot_25.0.4.1_1.tar.gz'; ;; *) echo "Unsupported arch: ${ARCH}"; exit 1; ;; esac; savedAptMark="$(apt-mark showmanual)"; apt-get update; apt-get install -y --no-install-recommends wget gnupg; wget --progress=dot:giga -O /tmp/openjdk.tar.gz ${BINARY_URL}; wget --progress=dot:giga -O /tmp/openjdk.tar.gz.sig ${BINARY_URL}.sig; export GNUPGHOME="$(mktemp -d)"; gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 3B04D753C9050D9A5D343F39843C48A565F8F04B; gpg --batch --verify /tmp/openjdk.tar.gz.sig /tmp/openjdk.tar.gz; rm -rf "${GNUPGHOME}" /tmp/openjdk.tar.gz.sig; echo "${ESUM} */tmp/openjdk.tar.gz" | sha256sum -c -; mkdir -p "$JAVA_HOME"; tar --extract --file /tmp/openjdk.tar.gz --directory "$JAVA_HOME" --strip-components 1 --no-same-owner ; rm -f /tmp/openjdk.tar.gz ${JAVA_HOME}/lib/src.zip; apt-mark auto '.*' > /dev/null; apt-mark manual $savedAptMark > /dev/null; apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; rm -rf /var/lib/apt/lists/*; find "$JAVA_HOME/lib" -name '*.so' -exec dirname '{}' ';' | sort -u > /etc/ld.so.conf.d/docker-openjdk.conf; ldconfig; java -Xshare:dump; # buildkit

2026-09-25 22:39:12 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; echo "Verifying install ..."; fileEncoding="$(echo 'System.out.println(System.getProperty("file.encoding"))' | jshell -s -)"; [ "$fileEncoding" = 'UTF-8' ]; rm -rf ~/.java; echo "javac --version"; javac --version; echo "java --version"; java --version; echo "Complete." # buildkit

2026-09-25 22:39:12 UTC (buildkit.dockerfile.v0)

COPY --chmod=755 entrypoint.sh /__cacert_entrypoint.sh # buildkit

2026-09-25 22:39:12 UTC (buildkit.dockerfile.v0)

ENTRYPOINT ["/__cacert_entrypoint.sh"]

2026-09-25 22:39:12 UTC (buildkit.dockerfile.v0)

CMD ["jshell"]

2026-09-25 23:14:13 UTC (buildkit.dockerfile.v0)

ENV CATALINA_HOME=/usr/local/tomcat

2026-09-25 23:14:13 UTC (buildkit.dockerfile.v0)

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

2026-09-25 23:14:13 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c mkdir -p "$CATALINA_HOME" # buildkit

2026-09-25 23:14:14 UTC (buildkit.dockerfile.v0)

WORKDIR /usr/local/tomcat

2026-09-25 23:14:14 UTC (buildkit.dockerfile.v0)

ENV TOMCAT_NATIVE_LIBDIR=/usr/local/tomcat/native-jni-lib

2026-09-25 23:14:14 UTC (buildkit.dockerfile.v0)

ENV LD_LIBRARY_PATH=/usr/local/tomcat/native-jni-lib

2026-09-25 23:14:14 UTC (buildkit.dockerfile.v0)

ENV TOMCAT_MAJOR=9

2026-09-25 23:14:14 UTC (buildkit.dockerfile.v0)

ENV TOMCAT_VERSION=9.0.122

2026-09-25 23:14:14 UTC (buildkit.dockerfile.v0)

ENV TOMCAT_SHA512=1f2f7d822a407999d954e7eb4fb1e78998c2a9372bb466d27e8cefd2521ef779183744f39dfa50a77ce3b798e7fe30bf2fd43fd1d6a2e6135617af1ddda6ba2a

2026-09-25 23:14:47 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; savedAptMark="$(apt-mark showmanual)"; apt-get update; apt-get install -y --no-install-recommends ca-certificates curl gnupg ; ddist() { local f="$1"; shift; local distFile="$1"; shift; local mvnFile="${1:-}"; local success=; local distUrl=; for distUrl in "https://dlcdn.apache.org/$distFile" "https://archive.apache.org/dist/$distFile" ${mvnFile:+"https://repo1.maven.org/maven2/org/apache/tomcat/tomcat/$mvnFile"} ; do if curl -fL -o "$f" "$distUrl" && [ -s "$f" ]; then success=1; break; fi; done; [ -n "$success" ]; }; ddist 'tomcat.tar.gz' "tomcat/tomcat-$TOMCAT_MAJOR/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz" "$TOMCAT_VERSION/tomcat-$TOMCAT_VERSION.tar.gz"; echo "$TOMCAT_SHA512 *tomcat.tar.gz" | sha512sum --strict --check -; ddist 'tomcat.tar.gz.asc' "tomcat/tomcat-$TOMCAT_MAJOR/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz.asc" "$TOMCAT_VERSION/tomcat-$TOMCAT_VERSION.tar.gz.asc"; GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; curl -fL -o upstream-KEYS 'https://www.apache.org/dist/tomcat/tomcat-9/KEYS'; gpg --batch --import upstream-KEYS; printf '' > filtered-KEYS; for key in 'DCFD35E0BF8CA7344752DE8B6FB21E8933C60243' 'A9C5DF4D22E99998D9875A5110C01C5A2F6059E7' '48F8E69F6390C9F25CFEDCD268248959359E722B' ; do gpg --batch --fingerprint "$key"; gpg --batch --export --armor "$key" >> filtered-KEYS; done; gpgconf --kill all; rm -rf "$GNUPGHOME"; GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; gpg --batch --import filtered-KEYS; gpg --batch --verify tomcat.tar.gz.asc tomcat.tar.gz; tar -xf tomcat.tar.gz --strip-components=1; rm bin/*.bat; rm tomcat.tar.gz*; gpgconf --kill all; rm -rf "$GNUPGHOME"; mv webapps webapps.dist; mkdir webapps; nativeBuildDir="$(mktemp -d)"; tar -xf bin/tomcat-native.tar.gz -C "$nativeBuildDir" --strip-components=1; apt-get install -y --no-install-recommends dpkg-dev gcc libapr1-dev libssl-dev make ; ( export CATALINA_HOME="$PWD"; cd "$nativeBuildDir/native"; gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; aprConfig="$(command -v apr-1-config)"; ./configure --build="$gnuArch" --libdir="$TOMCAT_NATIVE_LIBDIR" --prefix="$CATALINA_HOME" --with-apr="$aprConfig" --with-java-home="$JAVA_HOME" --with-ssl ; nproc="$(nproc)"; make -j "$nproc"; make install; ); rm -rf "$nativeBuildDir"; rm bin/tomcat-native.tar.gz; apt-mark auto '.*' > /dev/null; [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark > /dev/null; find "$TOMCAT_NATIVE_LIBDIR" -type f -executable -exec ldd '{}' ';' | awk '/=>/ { print $(NF-1) }' | xargs -rt readlink -e | sort -u | xargs -rt dpkg-query --search | cut -d: -f1 | sort -u | tee "$TOMCAT_NATIVE_LIBDIR/.dependencies.txt" | xargs -r apt-mark manual ; apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; rm -rf /var/lib/apt/lists/*; find ./bin/ -name '*.sh' -exec sed -ri 's|^#!/bin/sh$|#!/usr/bin/env bash|' '{}' +; chmod -R +rX .; chmod 1777 logs temp work; catalina.sh version # buildkit

2026-09-25 23:14:48 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; nativeLines="$(catalina.sh configtest 2>&1)"; nativeLines="$(echo "$nativeLines" | grep 'Apache Tomcat Native')"; nativeLines="$(echo "$nativeLines" | sort -u)"; if ! echo "$nativeLines" | grep -E 'INFO: Loaded( APR based)? Apache Tomcat Native library' >&2; then echo >&2 "$nativeLines"; exit 1; fi # buildkit

2026-09-25 23:14:48 UTC (buildkit.dockerfile.v0)

EXPOSE map[8080/tcp:{}]

2026-09-25 23:14:48 UTC (buildkit.dockerfile.v0)

ENTRYPOINT []

2026-09-25 23:14:48 UTC (buildkit.dockerfile.v0)

CMD ["catalina.sh" "run"]

Details
Created

2026-09-25 23:12:51 UTC

Size

149 MB

Content Digest
Labels
  • org.opencontainers.image.version
    24.04

Environment
CATALINA_HOME

/usr/local/tomcat

JAVA_HOME

/opt/java/openjdk

JAVA_VERSION

jdk-25.0.4.1+1

LANG

en_US.UTF-8

LANGUAGE

en_US:en

LC_ALL

en_US.UTF-8

LD_LIBRARY_PATH

/usr/local/tomcat/native-jni-lib

PATH

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

TOMCAT_MAJOR

9

TOMCAT_NATIVE_LIBDIR

/usr/local/tomcat/native-jni-lib

TOMCAT_SHA512

1f2f7d822a407999d954e7eb4fb1e78998c2a9372bb466d27e8cefd2521ef779183744f39dfa50a77ce3b798e7fe30bf2fd43fd1d6a2e6135617af1ddda6ba2a

TOMCAT_VERSION

9.0.122


Layers

[#000] sha256:8a38824eedc553ba80cf1eb7df278a003340f7409fd4b9002bce07db8840a9a2 - 18.59% (27.6 MB)

[#001] sha256:70fcdab7da5ddc8ce551af253188e451fcdb8c425c43b3377f017709140eedb9 - 11.97% (17.8 MB)

[#002] sha256:b1f5993db636dec7dfacf8c0c7d72ba464bba31bf4beee656402fdb93901d8fe - 58.85% (87.4 MB)

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

[#004] sha256:1dd9044068ac56eec990c12b1382126e4eaef108415f1a1deeace84f663e48cf - 0.0% (2.41 KB)

[#005] sha256:23efa7f69adc40ec4c3a6cc79ddcfdc7789965f9177e2a36034ef89e354c7e9c - 0.0% (137 Bytes)

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

[#007] sha256:a97272ef5ee8ccbe0bd9b7e1e0cb03d19467aa819ca9fe7e968d49315e35eedb - 10.59% (15.7 MB)

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


History
2026-09-11 11:53:33 UTC

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

2026-09-11 11:53:33 UTC

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

2026-09-11 11:53:33 UTC

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

2026-09-11 11:53:37 UTC

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

2026-09-11 11:53:37 UTC

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

2026-09-25 22:37:50 UTC (buildkit.dockerfile.v0)

ENV JAVA_HOME=/opt/java/openjdk

2026-09-25 22:37:50 UTC (buildkit.dockerfile.v0)

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

2026-09-25 22:37:50 UTC (buildkit.dockerfile.v0)

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

2026-09-25 22:37:50 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; apt-get update; DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends fontconfig ca-certificates p11-kit binutils tzdata 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-09-25 22:37:50 UTC (buildkit.dockerfile.v0)

ENV JAVA_VERSION=jdk-25.0.4.1+1

2026-09-25 22:38:09 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; ARCH="$(dpkg --print-architecture)"; case "${ARCH}" in amd64) ESUM='dbb698396d478e7fa2b1e50f4103324b2a99b90569ee27c33f2261f9215cf41e'; BINARY_URL='https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.4.1%2B1/OpenJDK25U-jdk_x64_linux_hotspot_25.0.4.1_1.tar.gz'; ;; arm64) ESUM='69df11a02cfa3ef7d7ca645e03edce6778ec090e100f6ae2b42097865730ac52'; BINARY_URL='https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.4.1%2B1/OpenJDK25U-jdk_aarch64_linux_hotspot_25.0.4.1_1.tar.gz'; ;; ppc64el) ESUM='b508ca140557322c73da4278d21004b22480b894ffdc67a8795d7814afd8775c'; BINARY_URL='https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.4.1%2B1/OpenJDK25U-jdk_ppc64le_linux_hotspot_25.0.4.1_1.tar.gz'; ;; riscv64) ESUM='8dbef2b12ceaecec9b5f00d7f568309b7e3525137777736abfc65900c054ccf9'; BINARY_URL='https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.4.1%2B1/OpenJDK25U-jdk_riscv64_linux_hotspot_25.0.4.1_1.tar.gz'; ;; s390x) ESUM='012d4fe2be909a80c64675ab579877dd9b1db1eff6c7b327eed87b907706f819'; BINARY_URL='https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.4.1%2B1/OpenJDK25U-jdk_s390x_linux_hotspot_25.0.4.1_1.tar.gz'; ;; *) echo "Unsupported arch: ${ARCH}"; exit 1; ;; esac; savedAptMark="$(apt-mark showmanual)"; apt-get update; apt-get install -y --no-install-recommends wget gnupg; wget --progress=dot:giga -O /tmp/openjdk.tar.gz ${BINARY_URL}; wget --progress=dot:giga -O /tmp/openjdk.tar.gz.sig ${BINARY_URL}.sig; export GNUPGHOME="$(mktemp -d)"; gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 3B04D753C9050D9A5D343F39843C48A565F8F04B; gpg --batch --verify /tmp/openjdk.tar.gz.sig /tmp/openjdk.tar.gz; rm -rf "${GNUPGHOME}" /tmp/openjdk.tar.gz.sig; echo "${ESUM} */tmp/openjdk.tar.gz" | sha256sum -c -; mkdir -p "$JAVA_HOME"; tar --extract --file /tmp/openjdk.tar.gz --directory "$JAVA_HOME" --strip-components 1 --no-same-owner ; rm -f /tmp/openjdk.tar.gz ${JAVA_HOME}/lib/src.zip; apt-mark auto '.*' > /dev/null; apt-mark manual $savedAptMark > /dev/null; apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; rm -rf /var/lib/apt/lists/*; find "$JAVA_HOME/lib" -name '*.so' -exec dirname '{}' ';' | sort -u > /etc/ld.so.conf.d/docker-openjdk.conf; ldconfig; java -Xshare:dump; # buildkit

2026-09-25 22:38:11 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; echo "Verifying install ..."; fileEncoding="$(echo 'System.out.println(System.getProperty("file.encoding"))' | jshell -s -)"; [ "$fileEncoding" = 'UTF-8' ]; rm -rf ~/.java; echo "javac --version"; javac --version; echo "java --version"; java --version; echo "Complete." # buildkit

2026-09-25 22:38:11 UTC (buildkit.dockerfile.v0)

COPY --chmod=755 entrypoint.sh /__cacert_entrypoint.sh # buildkit

2026-09-25 22:38:11 UTC (buildkit.dockerfile.v0)

ENTRYPOINT ["/__cacert_entrypoint.sh"]

2026-09-25 22:38:11 UTC (buildkit.dockerfile.v0)

CMD ["jshell"]

2026-09-25 23:12:11 UTC (buildkit.dockerfile.v0)

ENV CATALINA_HOME=/usr/local/tomcat

2026-09-25 23:12:11 UTC (buildkit.dockerfile.v0)

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

2026-09-25 23:12:11 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c mkdir -p "$CATALINA_HOME" # buildkit

2026-09-25 23:12:11 UTC (buildkit.dockerfile.v0)

WORKDIR /usr/local/tomcat

2026-09-25 23:12:11 UTC (buildkit.dockerfile.v0)

ENV TOMCAT_NATIVE_LIBDIR=/usr/local/tomcat/native-jni-lib

2026-09-25 23:12:11 UTC (buildkit.dockerfile.v0)

ENV LD_LIBRARY_PATH=/usr/local/tomcat/native-jni-lib

2026-09-25 23:12:11 UTC (buildkit.dockerfile.v0)

ENV TOMCAT_MAJOR=9

2026-09-25 23:12:11 UTC (buildkit.dockerfile.v0)

ENV TOMCAT_VERSION=9.0.122

2026-09-25 23:12:11 UTC (buildkit.dockerfile.v0)

ENV TOMCAT_SHA512=1f2f7d822a407999d954e7eb4fb1e78998c2a9372bb466d27e8cefd2521ef779183744f39dfa50a77ce3b798e7fe30bf2fd43fd1d6a2e6135617af1ddda6ba2a

2026-09-25 23:12:51 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; savedAptMark="$(apt-mark showmanual)"; apt-get update; apt-get install -y --no-install-recommends ca-certificates curl gnupg ; ddist() { local f="$1"; shift; local distFile="$1"; shift; local mvnFile="${1:-}"; local success=; local distUrl=; for distUrl in "https://dlcdn.apache.org/$distFile" "https://archive.apache.org/dist/$distFile" ${mvnFile:+"https://repo1.maven.org/maven2/org/apache/tomcat/tomcat/$mvnFile"} ; do if curl -fL -o "$f" "$distUrl" && [ -s "$f" ]; then success=1; break; fi; done; [ -n "$success" ]; }; ddist 'tomcat.tar.gz' "tomcat/tomcat-$TOMCAT_MAJOR/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz" "$TOMCAT_VERSION/tomcat-$TOMCAT_VERSION.tar.gz"; echo "$TOMCAT_SHA512 *tomcat.tar.gz" | sha512sum --strict --check -; ddist 'tomcat.tar.gz.asc' "tomcat/tomcat-$TOMCAT_MAJOR/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz.asc" "$TOMCAT_VERSION/tomcat-$TOMCAT_VERSION.tar.gz.asc"; GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; curl -fL -o upstream-KEYS 'https://www.apache.org/dist/tomcat/tomcat-9/KEYS'; gpg --batch --import upstream-KEYS; printf '' > filtered-KEYS; for key in 'DCFD35E0BF8CA7344752DE8B6FB21E8933C60243' 'A9C5DF4D22E99998D9875A5110C01C5A2F6059E7' '48F8E69F6390C9F25CFEDCD268248959359E722B' ; do gpg --batch --fingerprint "$key"; gpg --batch --export --armor "$key" >> filtered-KEYS; done; gpgconf --kill all; rm -rf "$GNUPGHOME"; GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; gpg --batch --import filtered-KEYS; gpg --batch --verify tomcat.tar.gz.asc tomcat.tar.gz; tar -xf tomcat.tar.gz --strip-components=1; rm bin/*.bat; rm tomcat.tar.gz*; gpgconf --kill all; rm -rf "$GNUPGHOME"; mv webapps webapps.dist; mkdir webapps; nativeBuildDir="$(mktemp -d)"; tar -xf bin/tomcat-native.tar.gz -C "$nativeBuildDir" --strip-components=1; apt-get install -y --no-install-recommends dpkg-dev gcc libapr1-dev libssl-dev make ; ( export CATALINA_HOME="$PWD"; cd "$nativeBuildDir/native"; gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; aprConfig="$(command -v apr-1-config)"; ./configure --build="$gnuArch" --libdir="$TOMCAT_NATIVE_LIBDIR" --prefix="$CATALINA_HOME" --with-apr="$aprConfig" --with-java-home="$JAVA_HOME" --with-ssl ; nproc="$(nproc)"; make -j "$nproc"; make install; ); rm -rf "$nativeBuildDir"; rm bin/tomcat-native.tar.gz; apt-mark auto '.*' > /dev/null; [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark > /dev/null; find "$TOMCAT_NATIVE_LIBDIR" -type f -executable -exec ldd '{}' ';' | awk '/=>/ { print $(NF-1) }' | xargs -rt readlink -e | sort -u | xargs -rt dpkg-query --search | cut -d: -f1 | sort -u | tee "$TOMCAT_NATIVE_LIBDIR/.dependencies.txt" | xargs -r apt-mark manual ; apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; rm -rf /var/lib/apt/lists/*; find ./bin/ -name '*.sh' -exec sed -ri 's|^#!/bin/sh$|#!/usr/bin/env bash|' '{}' +; chmod -R +rX .; chmod 1777 logs temp work; catalina.sh version # buildkit

2026-09-25 23:12:51 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; nativeLines="$(catalina.sh configtest 2>&1)"; nativeLines="$(echo "$nativeLines" | grep 'Apache Tomcat Native')"; nativeLines="$(echo "$nativeLines" | sort -u)"; if ! echo "$nativeLines" | grep -E 'INFO: Loaded( APR based)? Apache Tomcat Native library' >&2; then echo >&2 "$nativeLines"; exit 1; fi # buildkit

2026-09-25 23:12:51 UTC (buildkit.dockerfile.v0)

EXPOSE map[8080/tcp:{}]

2026-09-25 23:12:51 UTC (buildkit.dockerfile.v0)

ENTRYPOINT []

2026-09-25 23:12:51 UTC (buildkit.dockerfile.v0)

CMD ["catalina.sh" "run"]

Details
Created

2026-09-26 03:15:36 UTC

Size

152 MB

Content Digest
Labels
  • org.opencontainers.image.version
    24.04

Environment
CATALINA_HOME

/usr/local/tomcat

JAVA_HOME

/opt/java/openjdk

JAVA_VERSION

jdk-25.0.4.1+1

LANG

en_US.UTF-8

LANGUAGE

en_US:en

LC_ALL

en_US.UTF-8

LD_LIBRARY_PATH

/usr/local/tomcat/native-jni-lib

PATH

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

TOMCAT_MAJOR

9

TOMCAT_NATIVE_LIBDIR

/usr/local/tomcat/native-jni-lib

TOMCAT_SHA512

1f2f7d822a407999d954e7eb4fb1e78998c2a9372bb466d27e8cefd2521ef779183744f39dfa50a77ce3b798e7fe30bf2fd43fd1d6a2e6135617af1ddda6ba2a

TOMCAT_VERSION

9.0.122


Layers

[#000] sha256:a7067f7ee788cc3e90f83fa0ac84d48a200fde4469a2a5e638f059842a8f11d1 - 21.51% (32.8 MB)

[#001] sha256:05525597693e331a90384251d24bf1f2e9efaacdaeeb85d3cd0b4e4d9fd0a469 - 10.82% (16.5 MB)

[#002] sha256:c7d52bd47bea578ca522e1e0f5464b6b93eed293e7a8af64c4b5fd3400dac979 - 57.19% (87.2 MB)

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

[#004] sha256:a223b6dd3db80063f8143ebf31f981354346d63751897addc9db3d0c2ed69900 - 0.0% (2.41 KB)

[#005] sha256:a4a4bdf8a3a2b0307b4fbb1b18db564a0a0f2dd380e794922bc8c8f190777bb9 - 0.0% (139 Bytes)

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

[#007] sha256:df9f3f2065706db7008a2b6ec611e47555acaa21d988cdce1ce8b2a9ae2df005 - 10.47% (16 MB)

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


History
2026-09-11 11:54:01 UTC

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

2026-09-11 11:54:01 UTC

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

2026-09-11 11:54:01 UTC

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

2026-09-11 11:54:04 UTC

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

2026-09-11 11:54:05 UTC

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

2026-09-16 06:56:14 UTC (buildkit.dockerfile.v0)

ENV JAVA_HOME=/opt/java/openjdk

2026-09-16 06:56:14 UTC (buildkit.dockerfile.v0)

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

2026-09-16 06:56:14 UTC (buildkit.dockerfile.v0)

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

2026-09-16 06:56:14 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; apt-get update; DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends fontconfig ca-certificates p11-kit binutils tzdata 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-09-16 06:56:14 UTC (buildkit.dockerfile.v0)

ENV JAVA_VERSION=jdk-25.0.4.1+1

2026-09-25 23:01:00 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; ARCH="$(dpkg --print-architecture)"; case "${ARCH}" in amd64) ESUM='dbb698396d478e7fa2b1e50f4103324b2a99b90569ee27c33f2261f9215cf41e'; BINARY_URL='https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.4.1%2B1/OpenJDK25U-jdk_x64_linux_hotspot_25.0.4.1_1.tar.gz'; ;; arm64) ESUM='69df11a02cfa3ef7d7ca645e03edce6778ec090e100f6ae2b42097865730ac52'; BINARY_URL='https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.4.1%2B1/OpenJDK25U-jdk_aarch64_linux_hotspot_25.0.4.1_1.tar.gz'; ;; ppc64el) ESUM='b508ca140557322c73da4278d21004b22480b894ffdc67a8795d7814afd8775c'; BINARY_URL='https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.4.1%2B1/OpenJDK25U-jdk_ppc64le_linux_hotspot_25.0.4.1_1.tar.gz'; ;; riscv64) ESUM='8dbef2b12ceaecec9b5f00d7f568309b7e3525137777736abfc65900c054ccf9'; BINARY_URL='https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.4.1%2B1/OpenJDK25U-jdk_riscv64_linux_hotspot_25.0.4.1_1.tar.gz'; ;; s390x) ESUM='012d4fe2be909a80c64675ab579877dd9b1db1eff6c7b327eed87b907706f819'; BINARY_URL='https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.4.1%2B1/OpenJDK25U-jdk_s390x_linux_hotspot_25.0.4.1_1.tar.gz'; ;; *) echo "Unsupported arch: ${ARCH}"; exit 1; ;; esac; savedAptMark="$(apt-mark showmanual)"; apt-get update; apt-get install -y --no-install-recommends wget gnupg; wget --progress=dot:giga -O /tmp/openjdk.tar.gz ${BINARY_URL}; wget --progress=dot:giga -O /tmp/openjdk.tar.gz.sig ${BINARY_URL}.sig; export GNUPGHOME="$(mktemp -d)"; gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 3B04D753C9050D9A5D343F39843C48A565F8F04B; gpg --batch --verify /tmp/openjdk.tar.gz.sig /tmp/openjdk.tar.gz; rm -rf "${GNUPGHOME}" /tmp/openjdk.tar.gz.sig; echo "${ESUM} */tmp/openjdk.tar.gz" | sha256sum -c -; mkdir -p "$JAVA_HOME"; tar --extract --file /tmp/openjdk.tar.gz --directory "$JAVA_HOME" --strip-components 1 --no-same-owner ; rm -f /tmp/openjdk.tar.gz ${JAVA_HOME}/lib/src.zip; apt-mark auto '.*' > /dev/null; apt-mark manual $savedAptMark > /dev/null; apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; rm -rf /var/lib/apt/lists/*; find "$JAVA_HOME/lib" -name '*.so' -exec dirname '{}' ';' | sort -u > /etc/ld.so.conf.d/docker-openjdk.conf; ldconfig; java -Xshare:dump; # buildkit

2026-09-25 23:01:04 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; echo "Verifying install ..."; fileEncoding="$(echo 'System.out.println(System.getProperty("file.encoding"))' | jshell -s -)"; [ "$fileEncoding" = 'UTF-8' ]; rm -rf ~/.java; echo "javac --version"; javac --version; echo "java --version"; java --version; echo "Complete." # buildkit

2026-09-25 23:01:06 UTC (buildkit.dockerfile.v0)

COPY --chmod=755 entrypoint.sh /__cacert_entrypoint.sh # buildkit

2026-09-25 23:01:06 UTC (buildkit.dockerfile.v0)

ENTRYPOINT ["/__cacert_entrypoint.sh"]

2026-09-25 23:01:06 UTC (buildkit.dockerfile.v0)

CMD ["jshell"]

2026-09-26 02:51:41 UTC (buildkit.dockerfile.v0)

ENV CATALINA_HOME=/usr/local/tomcat

2026-09-26 02:51:41 UTC (buildkit.dockerfile.v0)

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

2026-09-26 02:51:41 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c mkdir -p "$CATALINA_HOME" # buildkit

2026-09-26 02:51:42 UTC (buildkit.dockerfile.v0)

WORKDIR /usr/local/tomcat

2026-09-26 02:51:42 UTC (buildkit.dockerfile.v0)

ENV TOMCAT_NATIVE_LIBDIR=/usr/local/tomcat/native-jni-lib

2026-09-26 02:51:42 UTC (buildkit.dockerfile.v0)

ENV LD_LIBRARY_PATH=/usr/local/tomcat/native-jni-lib

2026-09-26 02:51:42 UTC (buildkit.dockerfile.v0)

ENV TOMCAT_MAJOR=9

2026-09-26 02:51:42 UTC (buildkit.dockerfile.v0)

ENV TOMCAT_VERSION=9.0.122

2026-09-26 02:51:42 UTC (buildkit.dockerfile.v0)

ENV TOMCAT_SHA512=1f2f7d822a407999d954e7eb4fb1e78998c2a9372bb466d27e8cefd2521ef779183744f39dfa50a77ce3b798e7fe30bf2fd43fd1d6a2e6135617af1ddda6ba2a

2026-09-26 03:15:34 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; savedAptMark="$(apt-mark showmanual)"; apt-get update; apt-get install -y --no-install-recommends ca-certificates curl gnupg ; ddist() { local f="$1"; shift; local distFile="$1"; shift; local mvnFile="${1:-}"; local success=; local distUrl=; for distUrl in "https://dlcdn.apache.org/$distFile" "https://archive.apache.org/dist/$distFile" ${mvnFile:+"https://repo1.maven.org/maven2/org/apache/tomcat/tomcat/$mvnFile"} ; do if curl -fL -o "$f" "$distUrl" && [ -s "$f" ]; then success=1; break; fi; done; [ -n "$success" ]; }; ddist 'tomcat.tar.gz' "tomcat/tomcat-$TOMCAT_MAJOR/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz" "$TOMCAT_VERSION/tomcat-$TOMCAT_VERSION.tar.gz"; echo "$TOMCAT_SHA512 *tomcat.tar.gz" | sha512sum --strict --check -; ddist 'tomcat.tar.gz.asc' "tomcat/tomcat-$TOMCAT_MAJOR/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz.asc" "$TOMCAT_VERSION/tomcat-$TOMCAT_VERSION.tar.gz.asc"; GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; curl -fL -o upstream-KEYS 'https://www.apache.org/dist/tomcat/tomcat-9/KEYS'; gpg --batch --import upstream-KEYS; printf '' > filtered-KEYS; for key in 'DCFD35E0BF8CA7344752DE8B6FB21E8933C60243' 'A9C5DF4D22E99998D9875A5110C01C5A2F6059E7' '48F8E69F6390C9F25CFEDCD268248959359E722B' ; do gpg --batch --fingerprint "$key"; gpg --batch --export --armor "$key" >> filtered-KEYS; done; gpgconf --kill all; rm -rf "$GNUPGHOME"; GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; gpg --batch --import filtered-KEYS; gpg --batch --verify tomcat.tar.gz.asc tomcat.tar.gz; tar -xf tomcat.tar.gz --strip-components=1; rm bin/*.bat; rm tomcat.tar.gz*; gpgconf --kill all; rm -rf "$GNUPGHOME"; mv webapps webapps.dist; mkdir webapps; nativeBuildDir="$(mktemp -d)"; tar -xf bin/tomcat-native.tar.gz -C "$nativeBuildDir" --strip-components=1; apt-get install -y --no-install-recommends dpkg-dev gcc libapr1-dev libssl-dev make ; ( export CATALINA_HOME="$PWD"; cd "$nativeBuildDir/native"; gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; aprConfig="$(command -v apr-1-config)"; ./configure --build="$gnuArch" --libdir="$TOMCAT_NATIVE_LIBDIR" --prefix="$CATALINA_HOME" --with-apr="$aprConfig" --with-java-home="$JAVA_HOME" --with-ssl ; nproc="$(nproc)"; make -j "$nproc"; make install; ); rm -rf "$nativeBuildDir"; rm bin/tomcat-native.tar.gz; apt-mark auto '.*' > /dev/null; [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark > /dev/null; find "$TOMCAT_NATIVE_LIBDIR" -type f -executable -exec ldd '{}' ';' | awk '/=>/ { print $(NF-1) }' | xargs -rt readlink -e | sort -u | xargs -rt dpkg-query --search | cut -d: -f1 | sort -u | tee "$TOMCAT_NATIVE_LIBDIR/.dependencies.txt" | xargs -r apt-mark manual ; apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; rm -rf /var/lib/apt/lists/*; find ./bin/ -name '*.sh' -exec sed -ri 's|^#!/bin/sh$|#!/usr/bin/env bash|' '{}' +; chmod -R +rX .; chmod 1777 logs temp work; catalina.sh version # buildkit

2026-09-26 03:15:36 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; nativeLines="$(catalina.sh configtest 2>&1)"; nativeLines="$(echo "$nativeLines" | grep 'Apache Tomcat Native')"; nativeLines="$(echo "$nativeLines" | sort -u)"; if ! echo "$nativeLines" | grep -E 'INFO: Loaded( APR based)? Apache Tomcat Native library' >&2; then echo >&2 "$nativeLines"; exit 1; fi # buildkit

2026-09-26 03:15:36 UTC (buildkit.dockerfile.v0)

EXPOSE map[8080/tcp:{}]

2026-09-26 03:15:36 UTC (buildkit.dockerfile.v0)

ENTRYPOINT []

2026-09-26 03:15:36 UTC (buildkit.dockerfile.v0)

CMD ["catalina.sh" "run"]

Details
Created

2026-09-23 04:02:06 UTC

Size

146 MB

Content Digest
Labels
  • org.opencontainers.image.version
    24.04

Environment
CATALINA_HOME

/usr/local/tomcat

JAVA_HOME

/opt/java/openjdk

JAVA_VERSION

jdk-25.0.4+7

LANG

en_US.UTF-8

LANGUAGE

en_US:en

LC_ALL

en_US.UTF-8

LD_LIBRARY_PATH

/usr/local/tomcat/native-jni-lib

PATH

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

TOMCAT_MAJOR

9

TOMCAT_NATIVE_LIBDIR

/usr/local/tomcat/native-jni-lib

TOMCAT_SHA512

1f2f7d822a407999d954e7eb4fb1e78998c2a9372bb466d27e8cefd2521ef779183744f39dfa50a77ce3b798e7fe30bf2fd43fd1d6a2e6135617af1ddda6ba2a

TOMCAT_VERSION

9.0.122


Layers

[#000] sha256:aaab2a0ba2a1e3d3ddb5fa18f45aeabd3d5ea39840a67f33c3ef011e15f84e42 - 20.3% (29.6 MB)

[#001] sha256:4c12f16624f5bb53363a9ebbcd4517569911888d984a5b242bc4954c6189d6f7 - 9.03% (13.2 MB)

[#002] sha256:17eb0d07f4ee2579f02a736885b2847c56674c37a77f9866a91998dbf33342bd - 59.58% (86.9 MB)

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

[#004] sha256:538980e236fa2c21a0f40e18a072786c5775321f8d2395109a02ecf6582d3466 - 0.0% (2.41 KB)

[#005] sha256:9cb9cde7a740f1fc19e3b7dad595e476bf412130f7e95e1924a7fb455f77e775 - 0.0% (137 Bytes)

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

[#007] sha256:04b57cea4956fd45aa5ed90fa24860f283b2ea63eb9b29006f5df71c7ced2d83 - 11.1% (16.2 MB)

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


History
2026-09-11 13:13:20 UTC

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

2026-09-11 13:13:21 UTC

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

2026-09-11 13:13:21 UTC

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

2026-09-11 13:14:28 UTC

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

2026-09-11 13:14:33 UTC

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

2026-09-18 18:56:24 UTC (buildkit.dockerfile.v0)

ENV JAVA_HOME=/opt/java/openjdk

2026-09-18 18:56:24 UTC (buildkit.dockerfile.v0)

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

2026-09-18 18:56:24 UTC (buildkit.dockerfile.v0)

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

2026-09-18 18:56:24 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; apt-get update; DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends fontconfig ca-certificates p11-kit binutils tzdata 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-09-18 18:56:24 UTC (buildkit.dockerfile.v0)

ENV JAVA_VERSION=jdk-25.0.4+7

2026-09-18 18:58:51 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; ARCH="$(dpkg --print-architecture)"; case "${ARCH}" in amd64) ESUM='e58fcdcd637b25c03ca84cbbcefc70d11efb8f4b4cbd05decc9f661769d77f94'; BINARY_URL='https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.4%2B7/OpenJDK25U-jdk_x64_linux_hotspot_25.0.4_7.tar.gz'; ;; arm64) ESUM='621f7196f0b682fb557da58bec89bd7dfe5419811fe1c0ba75c9cc8432f084c7'; BINARY_URL='https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.4%2B7/OpenJDK25U-jdk_aarch64_linux_hotspot_25.0.4_7.tar.gz'; ;; ppc64el) ESUM='6b49f8289c377d4fb79ef54b612d77f969648f6ff862152f73c0be897e7c1ef8'; BINARY_URL='https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.4%2B7/OpenJDK25U-jdk_ppc64le_linux_hotspot_25.0.4_7.tar.gz'; ;; riscv64) ESUM='c6a70ed1ebe5ff66614f71fa9070e26d5b21587f576a8cb4f818269f4f475191'; BINARY_URL='https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.4%2B7/OpenJDK25U-jdk_riscv64_linux_hotspot_25.0.4_7.tar.gz'; ;; s390x) ESUM='24f05bf8b13cbb2fd6bdcc02da837725309d7279b5edebafb6b0994dcda262b3'; BINARY_URL='https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.4%2B7/OpenJDK25U-jdk_s390x_linux_hotspot_25.0.4_7.tar.gz'; ;; *) echo "Unsupported arch: ${ARCH}"; exit 1; ;; esac; savedAptMark="$(apt-mark showmanual)"; apt-get update; apt-get install -y --no-install-recommends wget gnupg; wget --progress=dot:giga -O /tmp/openjdk.tar.gz ${BINARY_URL}; wget --progress=dot:giga -O /tmp/openjdk.tar.gz.sig ${BINARY_URL}.sig; export GNUPGHOME="$(mktemp -d)"; gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 3B04D753C9050D9A5D343F39843C48A565F8F04B; gpg --batch --verify /tmp/openjdk.tar.gz.sig /tmp/openjdk.tar.gz; rm -rf "${GNUPGHOME}" /tmp/openjdk.tar.gz.sig; echo "${ESUM} */tmp/openjdk.tar.gz" | sha256sum -c -; mkdir -p "$JAVA_HOME"; tar --extract --file /tmp/openjdk.tar.gz --directory "$JAVA_HOME" --strip-components 1 --no-same-owner ; rm -f /tmp/openjdk.tar.gz ${JAVA_HOME}/lib/src.zip; apt-mark auto '.*' > /dev/null; apt-mark manual $savedAptMark > /dev/null; apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; rm -rf /var/lib/apt/lists/*; find "$JAVA_HOME/lib" -name '*.so' -exec dirname '{}' ';' | sort -u > /etc/ld.so.conf.d/docker-openjdk.conf; ldconfig; java -Xshare:dump; # buildkit

2026-09-18 18:59:06 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; echo "Verifying install ..."; fileEncoding="$(echo 'System.out.println(System.getProperty("file.encoding"))' | jshell -s -)"; [ "$fileEncoding" = 'UTF-8' ]; rm -rf ~/.java; echo "javac --version"; javac --version; echo "java --version"; java --version; echo "Complete." # buildkit

2026-09-18 18:59:06 UTC (buildkit.dockerfile.v0)

COPY --chmod=755 entrypoint.sh /__cacert_entrypoint.sh # buildkit

2026-09-18 18:59:06 UTC (buildkit.dockerfile.v0)

ENTRYPOINT ["/__cacert_entrypoint.sh"]

2026-09-18 18:59:06 UTC (buildkit.dockerfile.v0)

CMD ["jshell"]

2026-09-23 03:15:15 UTC (buildkit.dockerfile.v0)

ENV CATALINA_HOME=/usr/local/tomcat

2026-09-23 03:15:15 UTC (buildkit.dockerfile.v0)

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

2026-09-23 03:15:15 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c mkdir -p "$CATALINA_HOME" # buildkit

2026-09-23 03:15:15 UTC (buildkit.dockerfile.v0)

WORKDIR /usr/local/tomcat

2026-09-23 03:15:15 UTC (buildkit.dockerfile.v0)

ENV TOMCAT_NATIVE_LIBDIR=/usr/local/tomcat/native-jni-lib

2026-09-23 03:15:15 UTC (buildkit.dockerfile.v0)

ENV LD_LIBRARY_PATH=/usr/local/tomcat/native-jni-lib

2026-09-23 03:15:15 UTC (buildkit.dockerfile.v0)

ENV TOMCAT_MAJOR=9

2026-09-23 03:15:15 UTC (buildkit.dockerfile.v0)

ENV TOMCAT_VERSION=9.0.122

2026-09-23 03:15:15 UTC (buildkit.dockerfile.v0)

ENV TOMCAT_SHA512=1f2f7d822a407999d954e7eb4fb1e78998c2a9372bb466d27e8cefd2521ef779183744f39dfa50a77ce3b798e7fe30bf2fd43fd1d6a2e6135617af1ddda6ba2a

2026-09-23 04:01:57 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; savedAptMark="$(apt-mark showmanual)"; apt-get update; apt-get install -y --no-install-recommends ca-certificates curl gnupg ; ddist() { local f="$1"; shift; local distFile="$1"; shift; local mvnFile="${1:-}"; local success=; local distUrl=; for distUrl in "https://dlcdn.apache.org/$distFile" "https://archive.apache.org/dist/$distFile" ${mvnFile:+"https://repo1.maven.org/maven2/org/apache/tomcat/tomcat/$mvnFile"} ; do if curl -fL -o "$f" "$distUrl" && [ -s "$f" ]; then success=1; break; fi; done; [ -n "$success" ]; }; ddist 'tomcat.tar.gz' "tomcat/tomcat-$TOMCAT_MAJOR/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz" "$TOMCAT_VERSION/tomcat-$TOMCAT_VERSION.tar.gz"; echo "$TOMCAT_SHA512 *tomcat.tar.gz" | sha512sum --strict --check -; ddist 'tomcat.tar.gz.asc' "tomcat/tomcat-$TOMCAT_MAJOR/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz.asc" "$TOMCAT_VERSION/tomcat-$TOMCAT_VERSION.tar.gz.asc"; GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; curl -fL -o upstream-KEYS 'https://www.apache.org/dist/tomcat/tomcat-9/KEYS'; gpg --batch --import upstream-KEYS; printf '' > filtered-KEYS; for key in 'DCFD35E0BF8CA7344752DE8B6FB21E8933C60243' 'A9C5DF4D22E99998D9875A5110C01C5A2F6059E7' '48F8E69F6390C9F25CFEDCD268248959359E722B' ; do gpg --batch --fingerprint "$key"; gpg --batch --export --armor "$key" >> filtered-KEYS; done; gpgconf --kill all; rm -rf "$GNUPGHOME"; GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; gpg --batch --import filtered-KEYS; gpg --batch --verify tomcat.tar.gz.asc tomcat.tar.gz; tar -xf tomcat.tar.gz --strip-components=1; rm bin/*.bat; rm tomcat.tar.gz*; gpgconf --kill all; rm -rf "$GNUPGHOME"; mv webapps webapps.dist; mkdir webapps; nativeBuildDir="$(mktemp -d)"; tar -xf bin/tomcat-native.tar.gz -C "$nativeBuildDir" --strip-components=1; apt-get install -y --no-install-recommends dpkg-dev gcc libapr1-dev libssl-dev make ; ( export CATALINA_HOME="$PWD"; cd "$nativeBuildDir/native"; gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; aprConfig="$(command -v apr-1-config)"; ./configure --build="$gnuArch" --libdir="$TOMCAT_NATIVE_LIBDIR" --prefix="$CATALINA_HOME" --with-apr="$aprConfig" --with-java-home="$JAVA_HOME" --with-ssl ; nproc="$(nproc)"; make -j "$nproc"; make install; ); rm -rf "$nativeBuildDir"; rm bin/tomcat-native.tar.gz; apt-mark auto '.*' > /dev/null; [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark > /dev/null; find "$TOMCAT_NATIVE_LIBDIR" -type f -executable -exec ldd '{}' ';' | awk '/=>/ { print $(NF-1) }' | xargs -rt readlink -e | sort -u | xargs -rt dpkg-query --search | cut -d: -f1 | sort -u | tee "$TOMCAT_NATIVE_LIBDIR/.dependencies.txt" | xargs -r apt-mark manual ; apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; rm -rf /var/lib/apt/lists/*; find ./bin/ -name '*.sh' -exec sed -ri 's|^#!/bin/sh$|#!/usr/bin/env bash|' '{}' +; chmod -R +rX .; chmod 1777 logs temp work; catalina.sh version # buildkit

2026-09-23 04:02:06 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; nativeLines="$(catalina.sh configtest 2>&1)"; nativeLines="$(echo "$nativeLines" | grep 'Apache Tomcat Native')"; nativeLines="$(echo "$nativeLines" | sort -u)"; if ! echo "$nativeLines" | grep -E 'INFO: Loaded( APR based)? Apache Tomcat Native library' >&2; then echo >&2 "$nativeLines"; exit 1; fi # buildkit

2026-09-23 04:02:06 UTC (buildkit.dockerfile.v0)

EXPOSE map[8080/tcp:{}]

2026-09-23 04:02:06 UTC (buildkit.dockerfile.v0)

ENTRYPOINT []

2026-09-23 04:02:06 UTC (buildkit.dockerfile.v0)

CMD ["catalina.sh" "run"]

Details
Created

2026-09-25 23:07:48 UTC

Size

145 MB

Content Digest
Labels
  • org.opencontainers.image.version
    24.04

Environment
CATALINA_HOME

/usr/local/tomcat

JAVA_HOME

/opt/java/openjdk

JAVA_VERSION

jdk-25.0.4.1+1

LANG

en_US.UTF-8

LANGUAGE

en_US:en

LC_ALL

en_US.UTF-8

LD_LIBRARY_PATH

/usr/local/tomcat/native-jni-lib

PATH

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

TOMCAT_MAJOR

9

TOMCAT_NATIVE_LIBDIR

/usr/local/tomcat/native-jni-lib

TOMCAT_SHA512

1f2f7d822a407999d954e7eb4fb1e78998c2a9372bb466d27e8cefd2521ef779183744f39dfa50a77ce3b798e7fe30bf2fd43fd1d6a2e6135617af1ddda6ba2a

TOMCAT_VERSION

9.0.122


Layers

[#000] sha256:2d1aac92a29a4eacd140d431dc526f6da099043772d537d221717429ee877b2a - 19.76% (28.6 MB)

[#001] sha256:e053495774282b4effacbf93ffe4d5d2f095f96ae71f88d16f65c43d78d8d1cd - 10.74% (15.5 MB)

[#002] sha256:b5705bbee936c86b288248d5333c2f30cc4bb623a83f09e217bd9b44665e68c7 - 58.45% (84.5 MB)

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

[#004] sha256:0cd8752fc65ea065bd4b740946e3abf0217161500a08d3ea54cd4dd1ab23a963 - 0.0% (2.41 KB)

[#005] sha256:125bd6f33ad94c53820cfa3daf65d96a7156d67b6f2bea0e81bc68d633c062d7 - 0.0% (137 Bytes)

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

[#007] sha256:3d5cc022de8e26f4a4ddbb3b4937297accde66ece564d7e4ee79f7510a2a05cb - 11.05% (16 MB)

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


History
2026-09-11 11:53:08 UTC

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

2026-09-11 11:53:08 UTC

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

2026-09-11 11:53:08 UTC

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

2026-09-11 11:53:09 UTC

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

2026-09-11 11:53:09 UTC

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

2026-09-17 23:33:42 UTC (buildkit.dockerfile.v0)

ENV JAVA_HOME=/opt/java/openjdk

2026-09-17 23:33:42 UTC (buildkit.dockerfile.v0)

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

2026-09-17 23:33:42 UTC (buildkit.dockerfile.v0)

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

2026-09-17 23:33:42 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; apt-get update; DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends fontconfig ca-certificates p11-kit binutils tzdata 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-09-17 23:33:42 UTC (buildkit.dockerfile.v0)

ENV JAVA_VERSION=jdk-25.0.4.1+1

2026-09-25 22:39:24 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; ARCH="$(dpkg --print-architecture)"; case "${ARCH}" in amd64) ESUM='dbb698396d478e7fa2b1e50f4103324b2a99b90569ee27c33f2261f9215cf41e'; BINARY_URL='https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.4.1%2B1/OpenJDK25U-jdk_x64_linux_hotspot_25.0.4.1_1.tar.gz'; ;; arm64) ESUM='69df11a02cfa3ef7d7ca645e03edce6778ec090e100f6ae2b42097865730ac52'; BINARY_URL='https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.4.1%2B1/OpenJDK25U-jdk_aarch64_linux_hotspot_25.0.4.1_1.tar.gz'; ;; ppc64el) ESUM='b508ca140557322c73da4278d21004b22480b894ffdc67a8795d7814afd8775c'; BINARY_URL='https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.4.1%2B1/OpenJDK25U-jdk_ppc64le_linux_hotspot_25.0.4.1_1.tar.gz'; ;; riscv64) ESUM='8dbef2b12ceaecec9b5f00d7f568309b7e3525137777736abfc65900c054ccf9'; BINARY_URL='https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.4.1%2B1/OpenJDK25U-jdk_riscv64_linux_hotspot_25.0.4.1_1.tar.gz'; ;; s390x) ESUM='012d4fe2be909a80c64675ab579877dd9b1db1eff6c7b327eed87b907706f819'; BINARY_URL='https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.4.1%2B1/OpenJDK25U-jdk_s390x_linux_hotspot_25.0.4.1_1.tar.gz'; ;; *) echo "Unsupported arch: ${ARCH}"; exit 1; ;; esac; savedAptMark="$(apt-mark showmanual)"; apt-get update; apt-get install -y --no-install-recommends wget gnupg; wget --progress=dot:giga -O /tmp/openjdk.tar.gz ${BINARY_URL}; wget --progress=dot:giga -O /tmp/openjdk.tar.gz.sig ${BINARY_URL}.sig; export GNUPGHOME="$(mktemp -d)"; gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 3B04D753C9050D9A5D343F39843C48A565F8F04B; gpg --batch --verify /tmp/openjdk.tar.gz.sig /tmp/openjdk.tar.gz; rm -rf "${GNUPGHOME}" /tmp/openjdk.tar.gz.sig; echo "${ESUM} */tmp/openjdk.tar.gz" | sha256sum -c -; mkdir -p "$JAVA_HOME"; tar --extract --file /tmp/openjdk.tar.gz --directory "$JAVA_HOME" --strip-components 1 --no-same-owner ; rm -f /tmp/openjdk.tar.gz ${JAVA_HOME}/lib/src.zip; apt-mark auto '.*' > /dev/null; apt-mark manual $savedAptMark > /dev/null; apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; rm -rf /var/lib/apt/lists/*; find "$JAVA_HOME/lib" -name '*.so' -exec dirname '{}' ';' | sort -u > /etc/ld.so.conf.d/docker-openjdk.conf; ldconfig; java -Xshare:dump; # buildkit

2026-09-25 22:39:25 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; echo "Verifying install ..."; fileEncoding="$(echo 'System.out.println(System.getProperty("file.encoding"))' | jshell -s -)"; [ "$fileEncoding" = 'UTF-8' ]; rm -rf ~/.java; echo "javac --version"; javac --version; echo "java --version"; java --version; echo "Complete." # buildkit

2026-09-25 22:39:25 UTC (buildkit.dockerfile.v0)

COPY --chmod=755 entrypoint.sh /__cacert_entrypoint.sh # buildkit

2026-09-25 22:39:25 UTC (buildkit.dockerfile.v0)

ENTRYPOINT ["/__cacert_entrypoint.sh"]

2026-09-25 22:39:25 UTC (buildkit.dockerfile.v0)

CMD ["jshell"]

2026-09-25 23:07:22 UTC (buildkit.dockerfile.v0)

ENV CATALINA_HOME=/usr/local/tomcat

2026-09-25 23:07:22 UTC (buildkit.dockerfile.v0)

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

2026-09-25 23:07:22 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c mkdir -p "$CATALINA_HOME" # buildkit

2026-09-25 23:07:22 UTC (buildkit.dockerfile.v0)

WORKDIR /usr/local/tomcat

2026-09-25 23:07:22 UTC (buildkit.dockerfile.v0)

ENV TOMCAT_NATIVE_LIBDIR=/usr/local/tomcat/native-jni-lib

2026-09-25 23:07:22 UTC (buildkit.dockerfile.v0)

ENV LD_LIBRARY_PATH=/usr/local/tomcat/native-jni-lib

2026-09-25 23:07:22 UTC (buildkit.dockerfile.v0)

ENV TOMCAT_MAJOR=9

2026-09-25 23:07:22 UTC (buildkit.dockerfile.v0)

ENV TOMCAT_VERSION=9.0.122

2026-09-25 23:07:22 UTC (buildkit.dockerfile.v0)

ENV TOMCAT_SHA512=1f2f7d822a407999d954e7eb4fb1e78998c2a9372bb466d27e8cefd2521ef779183744f39dfa50a77ce3b798e7fe30bf2fd43fd1d6a2e6135617af1ddda6ba2a

2026-09-25 23:07:47 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; savedAptMark="$(apt-mark showmanual)"; apt-get update; apt-get install -y --no-install-recommends ca-certificates curl gnupg ; ddist() { local f="$1"; shift; local distFile="$1"; shift; local mvnFile="${1:-}"; local success=; local distUrl=; for distUrl in "https://dlcdn.apache.org/$distFile" "https://archive.apache.org/dist/$distFile" ${mvnFile:+"https://repo1.maven.org/maven2/org/apache/tomcat/tomcat/$mvnFile"} ; do if curl -fL -o "$f" "$distUrl" && [ -s "$f" ]; then success=1; break; fi; done; [ -n "$success" ]; }; ddist 'tomcat.tar.gz' "tomcat/tomcat-$TOMCAT_MAJOR/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz" "$TOMCAT_VERSION/tomcat-$TOMCAT_VERSION.tar.gz"; echo "$TOMCAT_SHA512 *tomcat.tar.gz" | sha512sum --strict --check -; ddist 'tomcat.tar.gz.asc' "tomcat/tomcat-$TOMCAT_MAJOR/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz.asc" "$TOMCAT_VERSION/tomcat-$TOMCAT_VERSION.tar.gz.asc"; GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; curl -fL -o upstream-KEYS 'https://www.apache.org/dist/tomcat/tomcat-9/KEYS'; gpg --batch --import upstream-KEYS; printf '' > filtered-KEYS; for key in 'DCFD35E0BF8CA7344752DE8B6FB21E8933C60243' 'A9C5DF4D22E99998D9875A5110C01C5A2F6059E7' '48F8E69F6390C9F25CFEDCD268248959359E722B' ; do gpg --batch --fingerprint "$key"; gpg --batch --export --armor "$key" >> filtered-KEYS; done; gpgconf --kill all; rm -rf "$GNUPGHOME"; GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; gpg --batch --import filtered-KEYS; gpg --batch --verify tomcat.tar.gz.asc tomcat.tar.gz; tar -xf tomcat.tar.gz --strip-components=1; rm bin/*.bat; rm tomcat.tar.gz*; gpgconf --kill all; rm -rf "$GNUPGHOME"; mv webapps webapps.dist; mkdir webapps; nativeBuildDir="$(mktemp -d)"; tar -xf bin/tomcat-native.tar.gz -C "$nativeBuildDir" --strip-components=1; apt-get install -y --no-install-recommends dpkg-dev gcc libapr1-dev libssl-dev make ; ( export CATALINA_HOME="$PWD"; cd "$nativeBuildDir/native"; gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; aprConfig="$(command -v apr-1-config)"; ./configure --build="$gnuArch" --libdir="$TOMCAT_NATIVE_LIBDIR" --prefix="$CATALINA_HOME" --with-apr="$aprConfig" --with-java-home="$JAVA_HOME" --with-ssl ; nproc="$(nproc)"; make -j "$nproc"; make install; ); rm -rf "$nativeBuildDir"; rm bin/tomcat-native.tar.gz; apt-mark auto '.*' > /dev/null; [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark > /dev/null; find "$TOMCAT_NATIVE_LIBDIR" -type f -executable -exec ldd '{}' ';' | awk '/=>/ { print $(NF-1) }' | xargs -rt readlink -e | sort -u | xargs -rt dpkg-query --search | cut -d: -f1 | sort -u | tee "$TOMCAT_NATIVE_LIBDIR/.dependencies.txt" | xargs -r apt-mark manual ; apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; rm -rf /var/lib/apt/lists/*; find ./bin/ -name '*.sh' -exec sed -ri 's|^#!/bin/sh$|#!/usr/bin/env bash|' '{}' +; chmod -R +rX .; chmod 1777 logs temp work; catalina.sh version # buildkit

2026-09-25 23:07:48 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; nativeLines="$(catalina.sh configtest 2>&1)"; nativeLines="$(echo "$nativeLines" | grep 'Apache Tomcat Native')"; nativeLines="$(echo "$nativeLines" | sort -u)"; if ! echo "$nativeLines" | grep -E 'INFO: Loaded( APR based)? Apache Tomcat Native library' >&2; then echo >&2 "$nativeLines"; exit 1; fi # buildkit

2026-09-25 23:07:48 UTC (buildkit.dockerfile.v0)

EXPOSE map[8080/tcp:{}]

2026-09-25 23:07:48 UTC (buildkit.dockerfile.v0)

ENTRYPOINT []

2026-09-25 23:07:48 UTC (buildkit.dockerfile.v0)

CMD ["catalina.sh" "run"]

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