commit
5d26be5fce
|
|
@ -1,154 +0,0 @@
|
||||||
#
|
|
||||||
# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh"
|
|
||||||
#
|
|
||||||
# PLEASE DO NOT EDIT IT DIRECTLY.
|
|
||||||
#
|
|
||||||
|
|
||||||
FROM amazoncorretto:11-al2-jdk
|
|
||||||
|
|
||||||
ENV CATALINA_HOME /usr/local/tomcat
|
|
||||||
ENV PATH $CATALINA_HOME/bin:$PATH
|
|
||||||
RUN mkdir -p "$CATALINA_HOME"
|
|
||||||
WORKDIR $CATALINA_HOME
|
|
||||||
|
|
||||||
# let "Tomcat Native" live somewhere isolated
|
|
||||||
ENV TOMCAT_NATIVE_LIBDIR $CATALINA_HOME/native-jni-lib
|
|
||||||
ENV LD_LIBRARY_PATH ${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$TOMCAT_NATIVE_LIBDIR
|
|
||||||
|
|
||||||
# see https://www.apache.org/dist/tomcat/tomcat-8/KEYS
|
|
||||||
# see also "versions.sh" (https://github.com/docker-library/tomcat/blob/master/versions.sh)
|
|
||||||
ENV GPG_KEYS 05AB33110949707C93A279E3D3EFE6B686867BA6 07E48665A34DCAFAE522E5E6266191C37C037D42 47309207D818FFD8DCD3F83F1931D684307A10A5 541FBE7D8F78B25E055DDEE13C370389288584E7 5C3C5F3E314C866292F359A8F3AD5C94A67F707E 765908099ACF92702C7D949BFA0C35EA8AA299F1 79F7026C690BAA50B92CD8B66A3AD3F4F22C4FED 9BA44C2621385CB966EBA586F72C284D731FABEE A27677289986DB50844682F8ACB77FC2E86E29AC A9C5DF4D22E99998D9875A5110C01C5A2F6059E7 DCFD35E0BF8CA7344752DE8B6FB21E8933C60243 F3A04C595DB5B6A5F1ECA43E3B7BBB100D811BBE F7DA48BB64BCB84ECBA7EE6935CD23C10D498E23
|
|
||||||
|
|
||||||
ENV TOMCAT_MAJOR 8
|
|
||||||
ENV TOMCAT_VERSION 8.5.100
|
|
||||||
ENV TOMCAT_SHA512 14d8dca911fe9c5b7e636e054ac2e70a532ddc358eda83ed3679e51df8baa7a397cabb8a5777b815014d46064cbc33e8d9ea75b9426dccdae54fb3913d9a54f0
|
|
||||||
|
|
||||||
RUN set -eux; \
|
|
||||||
\
|
|
||||||
# http://yum.baseurl.org/wiki/YumDB.html
|
|
||||||
if ! command -v yumdb > /dev/null; then \
|
|
||||||
yum install -y --setopt=skip_missing_names_on_install=False yum-utils; \
|
|
||||||
yumdb set reason dep yum-utils; \
|
|
||||||
fi; \
|
|
||||||
# a helper function to "yum install" things, but only if they aren't installed (and to set their "reason" to "dep" so "yum autoremove" can purge them for us)
|
|
||||||
_yum_install_temporary() { ( set -eu +x; \
|
|
||||||
local pkg todo=''; \
|
|
||||||
for pkg; do \
|
|
||||||
if ! rpm --query "$pkg" > /dev/null 2>&1; then \
|
|
||||||
todo="$todo $pkg"; \
|
|
||||||
fi; \
|
|
||||||
done; \
|
|
||||||
if [ -n "$todo" ]; then \
|
|
||||||
set -x; \
|
|
||||||
yum install -y --setopt=skip_missing_names_on_install=False $todo; \
|
|
||||||
yumdb set reason dep $todo; \
|
|
||||||
fi; \
|
|
||||||
) }; \
|
|
||||||
_yum_install_temporary gzip tar; \
|
|
||||||
\
|
|
||||||
ddist() { \
|
|
||||||
local f="$1"; shift; \
|
|
||||||
local distFile="$1"; shift; \
|
|
||||||
local mvnFile="${1:-}"; \
|
|
||||||
local success=; \
|
|
||||||
local distUrl=; \
|
|
||||||
for distUrl in \
|
|
||||||
# https://apache.org/history/mirror-history.html
|
|
||||||
"https://dlcdn.apache.org/$distFile" \
|
|
||||||
# if the version is outdated, we have to pull from the archive
|
|
||||||
"https://archive.apache.org/dist/$distFile" \
|
|
||||||
# if all else fails, let's try Maven (https://www.mail-archive.com/users@tomcat.apache.org/msg134940.html; https://mvnrepository.com/artifact/org.apache.tomcat/tomcat; https://repo1.maven.org/maven2/org/apache/tomcat/tomcat/)
|
|
||||||
${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"; \
|
|
||||||
export GNUPGHOME="$(mktemp -d)"; \
|
|
||||||
for key in $GPG_KEYS; do \
|
|
||||||
gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key"; \
|
|
||||||
done; \
|
|
||||||
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*; \
|
|
||||||
rm -rf "$GNUPGHOME"; \
|
|
||||||
\
|
|
||||||
# https://tomcat.apache.org/tomcat-9.0-doc/security-howto.html#Default_web_applications
|
|
||||||
mv webapps webapps.dist; \
|
|
||||||
mkdir webapps; \
|
|
||||||
# we don't delete them completely because they're frankly a pain to get back for users who do want them, and they're generally tiny (~7MB)
|
|
||||||
\
|
|
||||||
nativeBuildDir="$(mktemp -d)"; \
|
|
||||||
tar -xf bin/tomcat-native.tar.gz -C "$nativeBuildDir" --strip-components=1; \
|
|
||||||
_yum_install_temporary \
|
|
||||||
apr-devel \
|
|
||||||
gcc \
|
|
||||||
make \
|
|
||||||
openssl11-devel \
|
|
||||||
; \
|
|
||||||
( \
|
|
||||||
export CATALINA_HOME="$PWD"; \
|
|
||||||
cd "$nativeBuildDir/native"; \
|
|
||||||
aprConfig="$(command -v apr-1-config)"; \
|
|
||||||
./configure \
|
|
||||||
--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; \
|
|
||||||
\
|
|
||||||
# mark any explicit dependencies as manually installed
|
|
||||||
find "$TOMCAT_NATIVE_LIBDIR" -type f -executable -exec ldd '{}' ';' \
|
|
||||||
| awk '/=>/ && $(NF-1) != "=>" { print $(NF-1) }' \
|
|
||||||
| xargs -rt readlink -e \
|
|
||||||
| sort -u \
|
|
||||||
| xargs -rt rpm --query --whatprovides \
|
|
||||||
| sort -u \
|
|
||||||
| tee "$TOMCAT_NATIVE_LIBDIR/.dependencies.txt" \
|
|
||||||
| xargs -r yumdb set reason user \
|
|
||||||
; \
|
|
||||||
\
|
|
||||||
# clean up anything added temporarily and not later marked as necessary
|
|
||||||
yum autoremove -y; \
|
|
||||||
yum clean all; \
|
|
||||||
rm -rf /var/cache/yum; \
|
|
||||||
\
|
|
||||||
# sh removes env vars it doesn't support (ones with periods)
|
|
||||||
# https://github.com/docker-library/tomcat/issues/77
|
|
||||||
find ./bin/ -name '*.sh' -exec sed -ri 's|^#!/bin/sh$|#!/usr/bin/env bash|' '{}' +; \
|
|
||||||
\
|
|
||||||
# fix permissions (especially for running as non-root)
|
|
||||||
# https://github.com/docker-library/tomcat/issues/35
|
|
||||||
chmod -R +rX .; \
|
|
||||||
chmod 1777 logs temp work; \
|
|
||||||
\
|
|
||||||
# smoke test
|
|
||||||
catalina.sh version
|
|
||||||
|
|
||||||
# verify Tomcat Native is working properly
|
|
||||||
RUN 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
|
|
||||||
|
|
||||||
EXPOSE 8080
|
|
||||||
CMD ["catalina.sh", "run"]
|
|
||||||
|
|
@ -1,150 +0,0 @@
|
||||||
#
|
|
||||||
# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh"
|
|
||||||
#
|
|
||||||
# PLEASE DO NOT EDIT IT DIRECTLY.
|
|
||||||
#
|
|
||||||
|
|
||||||
FROM eclipse-temurin:11-jdk-focal
|
|
||||||
|
|
||||||
ENV CATALINA_HOME /usr/local/tomcat
|
|
||||||
ENV PATH $CATALINA_HOME/bin:$PATH
|
|
||||||
RUN mkdir -p "$CATALINA_HOME"
|
|
||||||
WORKDIR $CATALINA_HOME
|
|
||||||
|
|
||||||
# let "Tomcat Native" live somewhere isolated
|
|
||||||
ENV TOMCAT_NATIVE_LIBDIR $CATALINA_HOME/native-jni-lib
|
|
||||||
ENV LD_LIBRARY_PATH ${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$TOMCAT_NATIVE_LIBDIR
|
|
||||||
|
|
||||||
# see https://www.apache.org/dist/tomcat/tomcat-8/KEYS
|
|
||||||
# see also "versions.sh" (https://github.com/docker-library/tomcat/blob/master/versions.sh)
|
|
||||||
ENV GPG_KEYS 05AB33110949707C93A279E3D3EFE6B686867BA6 07E48665A34DCAFAE522E5E6266191C37C037D42 47309207D818FFD8DCD3F83F1931D684307A10A5 541FBE7D8F78B25E055DDEE13C370389288584E7 5C3C5F3E314C866292F359A8F3AD5C94A67F707E 765908099ACF92702C7D949BFA0C35EA8AA299F1 79F7026C690BAA50B92CD8B66A3AD3F4F22C4FED 9BA44C2621385CB966EBA586F72C284D731FABEE A27677289986DB50844682F8ACB77FC2E86E29AC A9C5DF4D22E99998D9875A5110C01C5A2F6059E7 DCFD35E0BF8CA7344752DE8B6FB21E8933C60243 F3A04C595DB5B6A5F1ECA43E3B7BBB100D811BBE F7DA48BB64BCB84ECBA7EE6935CD23C10D498E23
|
|
||||||
|
|
||||||
ENV TOMCAT_MAJOR 8
|
|
||||||
ENV TOMCAT_VERSION 8.5.100
|
|
||||||
ENV TOMCAT_SHA512 14d8dca911fe9c5b7e636e054ac2e70a532ddc358eda83ed3679e51df8baa7a397cabb8a5777b815014d46064cbc33e8d9ea75b9426dccdae54fb3913d9a54f0
|
|
||||||
|
|
||||||
RUN 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://apache.org/history/mirror-history.html
|
|
||||||
"https://dlcdn.apache.org/$distFile" \
|
|
||||||
# if the version is outdated, we have to pull from the archive
|
|
||||||
"https://archive.apache.org/dist/$distFile" \
|
|
||||||
# if all else fails, let's try Maven (https://www.mail-archive.com/users@tomcat.apache.org/msg134940.html; https://mvnrepository.com/artifact/org.apache.tomcat/tomcat; https://repo1.maven.org/maven2/org/apache/tomcat/tomcat/)
|
|
||||||
${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"; \
|
|
||||||
export GNUPGHOME="$(mktemp -d)"; \
|
|
||||||
for key in $GPG_KEYS; do \
|
|
||||||
gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key"; \
|
|
||||||
done; \
|
|
||||||
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"; \
|
|
||||||
\
|
|
||||||
# https://tomcat.apache.org/tomcat-9.0-doc/security-howto.html#Default_web_applications
|
|
||||||
mv webapps webapps.dist; \
|
|
||||||
mkdir webapps; \
|
|
||||||
# we don't delete them completely because they're frankly a pain to get back for users who do want them, and they're generally tiny (~7MB)
|
|
||||||
\
|
|
||||||
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; \
|
|
||||||
\
|
|
||||||
# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies
|
|
||||||
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/*; \
|
|
||||||
\
|
|
||||||
# sh removes env vars it doesn't support (ones with periods)
|
|
||||||
# https://github.com/docker-library/tomcat/issues/77
|
|
||||||
find ./bin/ -name '*.sh' -exec sed -ri 's|^#!/bin/sh$|#!/usr/bin/env bash|' '{}' +; \
|
|
||||||
\
|
|
||||||
# fix permissions (especially for running as non-root)
|
|
||||||
# https://github.com/docker-library/tomcat/issues/35
|
|
||||||
chmod -R +rX .; \
|
|
||||||
chmod 1777 logs temp work; \
|
|
||||||
\
|
|
||||||
# smoke test
|
|
||||||
catalina.sh version
|
|
||||||
|
|
||||||
# verify Tomcat Native is working properly
|
|
||||||
RUN 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
|
|
||||||
|
|
||||||
EXPOSE 8080
|
|
||||||
|
|
||||||
# upstream eclipse-temurin-provided entrypoint script caused https://github.com/docker-library/tomcat/issues/77 to come back as https://github.com/docker-library/tomcat/issues/302; use "/entrypoint.sh" at your own risk
|
|
||||||
ENTRYPOINT []
|
|
||||||
|
|
||||||
CMD ["catalina.sh", "run"]
|
|
||||||
|
|
@ -1,150 +0,0 @@
|
||||||
#
|
|
||||||
# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh"
|
|
||||||
#
|
|
||||||
# PLEASE DO NOT EDIT IT DIRECTLY.
|
|
||||||
#
|
|
||||||
|
|
||||||
FROM eclipse-temurin:11-jdk-jammy
|
|
||||||
|
|
||||||
ENV CATALINA_HOME /usr/local/tomcat
|
|
||||||
ENV PATH $CATALINA_HOME/bin:$PATH
|
|
||||||
RUN mkdir -p "$CATALINA_HOME"
|
|
||||||
WORKDIR $CATALINA_HOME
|
|
||||||
|
|
||||||
# let "Tomcat Native" live somewhere isolated
|
|
||||||
ENV TOMCAT_NATIVE_LIBDIR $CATALINA_HOME/native-jni-lib
|
|
||||||
ENV LD_LIBRARY_PATH ${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$TOMCAT_NATIVE_LIBDIR
|
|
||||||
|
|
||||||
# see https://www.apache.org/dist/tomcat/tomcat-8/KEYS
|
|
||||||
# see also "versions.sh" (https://github.com/docker-library/tomcat/blob/master/versions.sh)
|
|
||||||
ENV GPG_KEYS 05AB33110949707C93A279E3D3EFE6B686867BA6 07E48665A34DCAFAE522E5E6266191C37C037D42 47309207D818FFD8DCD3F83F1931D684307A10A5 541FBE7D8F78B25E055DDEE13C370389288584E7 5C3C5F3E314C866292F359A8F3AD5C94A67F707E 765908099ACF92702C7D949BFA0C35EA8AA299F1 79F7026C690BAA50B92CD8B66A3AD3F4F22C4FED 9BA44C2621385CB966EBA586F72C284D731FABEE A27677289986DB50844682F8ACB77FC2E86E29AC A9C5DF4D22E99998D9875A5110C01C5A2F6059E7 DCFD35E0BF8CA7344752DE8B6FB21E8933C60243 F3A04C595DB5B6A5F1ECA43E3B7BBB100D811BBE F7DA48BB64BCB84ECBA7EE6935CD23C10D498E23
|
|
||||||
|
|
||||||
ENV TOMCAT_MAJOR 8
|
|
||||||
ENV TOMCAT_VERSION 8.5.100
|
|
||||||
ENV TOMCAT_SHA512 14d8dca911fe9c5b7e636e054ac2e70a532ddc358eda83ed3679e51df8baa7a397cabb8a5777b815014d46064cbc33e8d9ea75b9426dccdae54fb3913d9a54f0
|
|
||||||
|
|
||||||
RUN 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://apache.org/history/mirror-history.html
|
|
||||||
"https://dlcdn.apache.org/$distFile" \
|
|
||||||
# if the version is outdated, we have to pull from the archive
|
|
||||||
"https://archive.apache.org/dist/$distFile" \
|
|
||||||
# if all else fails, let's try Maven (https://www.mail-archive.com/users@tomcat.apache.org/msg134940.html; https://mvnrepository.com/artifact/org.apache.tomcat/tomcat; https://repo1.maven.org/maven2/org/apache/tomcat/tomcat/)
|
|
||||||
${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"; \
|
|
||||||
export GNUPGHOME="$(mktemp -d)"; \
|
|
||||||
for key in $GPG_KEYS; do \
|
|
||||||
gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key"; \
|
|
||||||
done; \
|
|
||||||
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"; \
|
|
||||||
\
|
|
||||||
# https://tomcat.apache.org/tomcat-9.0-doc/security-howto.html#Default_web_applications
|
|
||||||
mv webapps webapps.dist; \
|
|
||||||
mkdir webapps; \
|
|
||||||
# we don't delete them completely because they're frankly a pain to get back for users who do want them, and they're generally tiny (~7MB)
|
|
||||||
\
|
|
||||||
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; \
|
|
||||||
\
|
|
||||||
# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies
|
|
||||||
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/*; \
|
|
||||||
\
|
|
||||||
# sh removes env vars it doesn't support (ones with periods)
|
|
||||||
# https://github.com/docker-library/tomcat/issues/77
|
|
||||||
find ./bin/ -name '*.sh' -exec sed -ri 's|^#!/bin/sh$|#!/usr/bin/env bash|' '{}' +; \
|
|
||||||
\
|
|
||||||
# fix permissions (especially for running as non-root)
|
|
||||||
# https://github.com/docker-library/tomcat/issues/35
|
|
||||||
chmod -R +rX .; \
|
|
||||||
chmod 1777 logs temp work; \
|
|
||||||
\
|
|
||||||
# smoke test
|
|
||||||
catalina.sh version
|
|
||||||
|
|
||||||
# verify Tomcat Native is working properly
|
|
||||||
RUN 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
|
|
||||||
|
|
||||||
EXPOSE 8080
|
|
||||||
|
|
||||||
# upstream eclipse-temurin-provided entrypoint script caused https://github.com/docker-library/tomcat/issues/77 to come back as https://github.com/docker-library/tomcat/issues/302; use "/entrypoint.sh" at your own risk
|
|
||||||
ENTRYPOINT []
|
|
||||||
|
|
||||||
CMD ["catalina.sh", "run"]
|
|
||||||
|
|
@ -1,154 +0,0 @@
|
||||||
#
|
|
||||||
# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh"
|
|
||||||
#
|
|
||||||
# PLEASE DO NOT EDIT IT DIRECTLY.
|
|
||||||
#
|
|
||||||
|
|
||||||
FROM amazoncorretto:17-al2-jdk
|
|
||||||
|
|
||||||
ENV CATALINA_HOME /usr/local/tomcat
|
|
||||||
ENV PATH $CATALINA_HOME/bin:$PATH
|
|
||||||
RUN mkdir -p "$CATALINA_HOME"
|
|
||||||
WORKDIR $CATALINA_HOME
|
|
||||||
|
|
||||||
# let "Tomcat Native" live somewhere isolated
|
|
||||||
ENV TOMCAT_NATIVE_LIBDIR $CATALINA_HOME/native-jni-lib
|
|
||||||
ENV LD_LIBRARY_PATH ${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$TOMCAT_NATIVE_LIBDIR
|
|
||||||
|
|
||||||
# see https://www.apache.org/dist/tomcat/tomcat-8/KEYS
|
|
||||||
# see also "versions.sh" (https://github.com/docker-library/tomcat/blob/master/versions.sh)
|
|
||||||
ENV GPG_KEYS 05AB33110949707C93A279E3D3EFE6B686867BA6 07E48665A34DCAFAE522E5E6266191C37C037D42 47309207D818FFD8DCD3F83F1931D684307A10A5 541FBE7D8F78B25E055DDEE13C370389288584E7 5C3C5F3E314C866292F359A8F3AD5C94A67F707E 765908099ACF92702C7D949BFA0C35EA8AA299F1 79F7026C690BAA50B92CD8B66A3AD3F4F22C4FED 9BA44C2621385CB966EBA586F72C284D731FABEE A27677289986DB50844682F8ACB77FC2E86E29AC A9C5DF4D22E99998D9875A5110C01C5A2F6059E7 DCFD35E0BF8CA7344752DE8B6FB21E8933C60243 F3A04C595DB5B6A5F1ECA43E3B7BBB100D811BBE F7DA48BB64BCB84ECBA7EE6935CD23C10D498E23
|
|
||||||
|
|
||||||
ENV TOMCAT_MAJOR 8
|
|
||||||
ENV TOMCAT_VERSION 8.5.100
|
|
||||||
ENV TOMCAT_SHA512 14d8dca911fe9c5b7e636e054ac2e70a532ddc358eda83ed3679e51df8baa7a397cabb8a5777b815014d46064cbc33e8d9ea75b9426dccdae54fb3913d9a54f0
|
|
||||||
|
|
||||||
RUN set -eux; \
|
|
||||||
\
|
|
||||||
# http://yum.baseurl.org/wiki/YumDB.html
|
|
||||||
if ! command -v yumdb > /dev/null; then \
|
|
||||||
yum install -y --setopt=skip_missing_names_on_install=False yum-utils; \
|
|
||||||
yumdb set reason dep yum-utils; \
|
|
||||||
fi; \
|
|
||||||
# a helper function to "yum install" things, but only if they aren't installed (and to set their "reason" to "dep" so "yum autoremove" can purge them for us)
|
|
||||||
_yum_install_temporary() { ( set -eu +x; \
|
|
||||||
local pkg todo=''; \
|
|
||||||
for pkg; do \
|
|
||||||
if ! rpm --query "$pkg" > /dev/null 2>&1; then \
|
|
||||||
todo="$todo $pkg"; \
|
|
||||||
fi; \
|
|
||||||
done; \
|
|
||||||
if [ -n "$todo" ]; then \
|
|
||||||
set -x; \
|
|
||||||
yum install -y --setopt=skip_missing_names_on_install=False $todo; \
|
|
||||||
yumdb set reason dep $todo; \
|
|
||||||
fi; \
|
|
||||||
) }; \
|
|
||||||
_yum_install_temporary gzip tar; \
|
|
||||||
\
|
|
||||||
ddist() { \
|
|
||||||
local f="$1"; shift; \
|
|
||||||
local distFile="$1"; shift; \
|
|
||||||
local mvnFile="${1:-}"; \
|
|
||||||
local success=; \
|
|
||||||
local distUrl=; \
|
|
||||||
for distUrl in \
|
|
||||||
# https://apache.org/history/mirror-history.html
|
|
||||||
"https://dlcdn.apache.org/$distFile" \
|
|
||||||
# if the version is outdated, we have to pull from the archive
|
|
||||||
"https://archive.apache.org/dist/$distFile" \
|
|
||||||
# if all else fails, let's try Maven (https://www.mail-archive.com/users@tomcat.apache.org/msg134940.html; https://mvnrepository.com/artifact/org.apache.tomcat/tomcat; https://repo1.maven.org/maven2/org/apache/tomcat/tomcat/)
|
|
||||||
${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"; \
|
|
||||||
export GNUPGHOME="$(mktemp -d)"; \
|
|
||||||
for key in $GPG_KEYS; do \
|
|
||||||
gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key"; \
|
|
||||||
done; \
|
|
||||||
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*; \
|
|
||||||
rm -rf "$GNUPGHOME"; \
|
|
||||||
\
|
|
||||||
# https://tomcat.apache.org/tomcat-9.0-doc/security-howto.html#Default_web_applications
|
|
||||||
mv webapps webapps.dist; \
|
|
||||||
mkdir webapps; \
|
|
||||||
# we don't delete them completely because they're frankly a pain to get back for users who do want them, and they're generally tiny (~7MB)
|
|
||||||
\
|
|
||||||
nativeBuildDir="$(mktemp -d)"; \
|
|
||||||
tar -xf bin/tomcat-native.tar.gz -C "$nativeBuildDir" --strip-components=1; \
|
|
||||||
_yum_install_temporary \
|
|
||||||
apr-devel \
|
|
||||||
gcc \
|
|
||||||
make \
|
|
||||||
openssl11-devel \
|
|
||||||
; \
|
|
||||||
( \
|
|
||||||
export CATALINA_HOME="$PWD"; \
|
|
||||||
cd "$nativeBuildDir/native"; \
|
|
||||||
aprConfig="$(command -v apr-1-config)"; \
|
|
||||||
./configure \
|
|
||||||
--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; \
|
|
||||||
\
|
|
||||||
# mark any explicit dependencies as manually installed
|
|
||||||
find "$TOMCAT_NATIVE_LIBDIR" -type f -executable -exec ldd '{}' ';' \
|
|
||||||
| awk '/=>/ && $(NF-1) != "=>" { print $(NF-1) }' \
|
|
||||||
| xargs -rt readlink -e \
|
|
||||||
| sort -u \
|
|
||||||
| xargs -rt rpm --query --whatprovides \
|
|
||||||
| sort -u \
|
|
||||||
| tee "$TOMCAT_NATIVE_LIBDIR/.dependencies.txt" \
|
|
||||||
| xargs -r yumdb set reason user \
|
|
||||||
; \
|
|
||||||
\
|
|
||||||
# clean up anything added temporarily and not later marked as necessary
|
|
||||||
yum autoremove -y; \
|
|
||||||
yum clean all; \
|
|
||||||
rm -rf /var/cache/yum; \
|
|
||||||
\
|
|
||||||
# sh removes env vars it doesn't support (ones with periods)
|
|
||||||
# https://github.com/docker-library/tomcat/issues/77
|
|
||||||
find ./bin/ -name '*.sh' -exec sed -ri 's|^#!/bin/sh$|#!/usr/bin/env bash|' '{}' +; \
|
|
||||||
\
|
|
||||||
# fix permissions (especially for running as non-root)
|
|
||||||
# https://github.com/docker-library/tomcat/issues/35
|
|
||||||
chmod -R +rX .; \
|
|
||||||
chmod 1777 logs temp work; \
|
|
||||||
\
|
|
||||||
# smoke test
|
|
||||||
catalina.sh version
|
|
||||||
|
|
||||||
# verify Tomcat Native is working properly
|
|
||||||
RUN 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
|
|
||||||
|
|
||||||
EXPOSE 8080
|
|
||||||
CMD ["catalina.sh", "run"]
|
|
||||||
|
|
@ -1,150 +0,0 @@
|
||||||
#
|
|
||||||
# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh"
|
|
||||||
#
|
|
||||||
# PLEASE DO NOT EDIT IT DIRECTLY.
|
|
||||||
#
|
|
||||||
|
|
||||||
FROM eclipse-temurin:17-jdk-focal
|
|
||||||
|
|
||||||
ENV CATALINA_HOME /usr/local/tomcat
|
|
||||||
ENV PATH $CATALINA_HOME/bin:$PATH
|
|
||||||
RUN mkdir -p "$CATALINA_HOME"
|
|
||||||
WORKDIR $CATALINA_HOME
|
|
||||||
|
|
||||||
# let "Tomcat Native" live somewhere isolated
|
|
||||||
ENV TOMCAT_NATIVE_LIBDIR $CATALINA_HOME/native-jni-lib
|
|
||||||
ENV LD_LIBRARY_PATH ${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$TOMCAT_NATIVE_LIBDIR
|
|
||||||
|
|
||||||
# see https://www.apache.org/dist/tomcat/tomcat-8/KEYS
|
|
||||||
# see also "versions.sh" (https://github.com/docker-library/tomcat/blob/master/versions.sh)
|
|
||||||
ENV GPG_KEYS 05AB33110949707C93A279E3D3EFE6B686867BA6 07E48665A34DCAFAE522E5E6266191C37C037D42 47309207D818FFD8DCD3F83F1931D684307A10A5 541FBE7D8F78B25E055DDEE13C370389288584E7 5C3C5F3E314C866292F359A8F3AD5C94A67F707E 765908099ACF92702C7D949BFA0C35EA8AA299F1 79F7026C690BAA50B92CD8B66A3AD3F4F22C4FED 9BA44C2621385CB966EBA586F72C284D731FABEE A27677289986DB50844682F8ACB77FC2E86E29AC A9C5DF4D22E99998D9875A5110C01C5A2F6059E7 DCFD35E0BF8CA7344752DE8B6FB21E8933C60243 F3A04C595DB5B6A5F1ECA43E3B7BBB100D811BBE F7DA48BB64BCB84ECBA7EE6935CD23C10D498E23
|
|
||||||
|
|
||||||
ENV TOMCAT_MAJOR 8
|
|
||||||
ENV TOMCAT_VERSION 8.5.100
|
|
||||||
ENV TOMCAT_SHA512 14d8dca911fe9c5b7e636e054ac2e70a532ddc358eda83ed3679e51df8baa7a397cabb8a5777b815014d46064cbc33e8d9ea75b9426dccdae54fb3913d9a54f0
|
|
||||||
|
|
||||||
RUN 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://apache.org/history/mirror-history.html
|
|
||||||
"https://dlcdn.apache.org/$distFile" \
|
|
||||||
# if the version is outdated, we have to pull from the archive
|
|
||||||
"https://archive.apache.org/dist/$distFile" \
|
|
||||||
# if all else fails, let's try Maven (https://www.mail-archive.com/users@tomcat.apache.org/msg134940.html; https://mvnrepository.com/artifact/org.apache.tomcat/tomcat; https://repo1.maven.org/maven2/org/apache/tomcat/tomcat/)
|
|
||||||
${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"; \
|
|
||||||
export GNUPGHOME="$(mktemp -d)"; \
|
|
||||||
for key in $GPG_KEYS; do \
|
|
||||||
gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key"; \
|
|
||||||
done; \
|
|
||||||
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"; \
|
|
||||||
\
|
|
||||||
# https://tomcat.apache.org/tomcat-9.0-doc/security-howto.html#Default_web_applications
|
|
||||||
mv webapps webapps.dist; \
|
|
||||||
mkdir webapps; \
|
|
||||||
# we don't delete them completely because they're frankly a pain to get back for users who do want them, and they're generally tiny (~7MB)
|
|
||||||
\
|
|
||||||
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; \
|
|
||||||
\
|
|
||||||
# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies
|
|
||||||
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/*; \
|
|
||||||
\
|
|
||||||
# sh removes env vars it doesn't support (ones with periods)
|
|
||||||
# https://github.com/docker-library/tomcat/issues/77
|
|
||||||
find ./bin/ -name '*.sh' -exec sed -ri 's|^#!/bin/sh$|#!/usr/bin/env bash|' '{}' +; \
|
|
||||||
\
|
|
||||||
# fix permissions (especially for running as non-root)
|
|
||||||
# https://github.com/docker-library/tomcat/issues/35
|
|
||||||
chmod -R +rX .; \
|
|
||||||
chmod 1777 logs temp work; \
|
|
||||||
\
|
|
||||||
# smoke test
|
|
||||||
catalina.sh version
|
|
||||||
|
|
||||||
# verify Tomcat Native is working properly
|
|
||||||
RUN 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
|
|
||||||
|
|
||||||
EXPOSE 8080
|
|
||||||
|
|
||||||
# upstream eclipse-temurin-provided entrypoint script caused https://github.com/docker-library/tomcat/issues/77 to come back as https://github.com/docker-library/tomcat/issues/302; use "/entrypoint.sh" at your own risk
|
|
||||||
ENTRYPOINT []
|
|
||||||
|
|
||||||
CMD ["catalina.sh", "run"]
|
|
||||||
|
|
@ -1,150 +0,0 @@
|
||||||
#
|
|
||||||
# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh"
|
|
||||||
#
|
|
||||||
# PLEASE DO NOT EDIT IT DIRECTLY.
|
|
||||||
#
|
|
||||||
|
|
||||||
FROM eclipse-temurin:17-jdk-jammy
|
|
||||||
|
|
||||||
ENV CATALINA_HOME /usr/local/tomcat
|
|
||||||
ENV PATH $CATALINA_HOME/bin:$PATH
|
|
||||||
RUN mkdir -p "$CATALINA_HOME"
|
|
||||||
WORKDIR $CATALINA_HOME
|
|
||||||
|
|
||||||
# let "Tomcat Native" live somewhere isolated
|
|
||||||
ENV TOMCAT_NATIVE_LIBDIR $CATALINA_HOME/native-jni-lib
|
|
||||||
ENV LD_LIBRARY_PATH ${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$TOMCAT_NATIVE_LIBDIR
|
|
||||||
|
|
||||||
# see https://www.apache.org/dist/tomcat/tomcat-8/KEYS
|
|
||||||
# see also "versions.sh" (https://github.com/docker-library/tomcat/blob/master/versions.sh)
|
|
||||||
ENV GPG_KEYS 05AB33110949707C93A279E3D3EFE6B686867BA6 07E48665A34DCAFAE522E5E6266191C37C037D42 47309207D818FFD8DCD3F83F1931D684307A10A5 541FBE7D8F78B25E055DDEE13C370389288584E7 5C3C5F3E314C866292F359A8F3AD5C94A67F707E 765908099ACF92702C7D949BFA0C35EA8AA299F1 79F7026C690BAA50B92CD8B66A3AD3F4F22C4FED 9BA44C2621385CB966EBA586F72C284D731FABEE A27677289986DB50844682F8ACB77FC2E86E29AC A9C5DF4D22E99998D9875A5110C01C5A2F6059E7 DCFD35E0BF8CA7344752DE8B6FB21E8933C60243 F3A04C595DB5B6A5F1ECA43E3B7BBB100D811BBE F7DA48BB64BCB84ECBA7EE6935CD23C10D498E23
|
|
||||||
|
|
||||||
ENV TOMCAT_MAJOR 8
|
|
||||||
ENV TOMCAT_VERSION 8.5.100
|
|
||||||
ENV TOMCAT_SHA512 14d8dca911fe9c5b7e636e054ac2e70a532ddc358eda83ed3679e51df8baa7a397cabb8a5777b815014d46064cbc33e8d9ea75b9426dccdae54fb3913d9a54f0
|
|
||||||
|
|
||||||
RUN 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://apache.org/history/mirror-history.html
|
|
||||||
"https://dlcdn.apache.org/$distFile" \
|
|
||||||
# if the version is outdated, we have to pull from the archive
|
|
||||||
"https://archive.apache.org/dist/$distFile" \
|
|
||||||
# if all else fails, let's try Maven (https://www.mail-archive.com/users@tomcat.apache.org/msg134940.html; https://mvnrepository.com/artifact/org.apache.tomcat/tomcat; https://repo1.maven.org/maven2/org/apache/tomcat/tomcat/)
|
|
||||||
${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"; \
|
|
||||||
export GNUPGHOME="$(mktemp -d)"; \
|
|
||||||
for key in $GPG_KEYS; do \
|
|
||||||
gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key"; \
|
|
||||||
done; \
|
|
||||||
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"; \
|
|
||||||
\
|
|
||||||
# https://tomcat.apache.org/tomcat-9.0-doc/security-howto.html#Default_web_applications
|
|
||||||
mv webapps webapps.dist; \
|
|
||||||
mkdir webapps; \
|
|
||||||
# we don't delete them completely because they're frankly a pain to get back for users who do want them, and they're generally tiny (~7MB)
|
|
||||||
\
|
|
||||||
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; \
|
|
||||||
\
|
|
||||||
# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies
|
|
||||||
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/*; \
|
|
||||||
\
|
|
||||||
# sh removes env vars it doesn't support (ones with periods)
|
|
||||||
# https://github.com/docker-library/tomcat/issues/77
|
|
||||||
find ./bin/ -name '*.sh' -exec sed -ri 's|^#!/bin/sh$|#!/usr/bin/env bash|' '{}' +; \
|
|
||||||
\
|
|
||||||
# fix permissions (especially for running as non-root)
|
|
||||||
# https://github.com/docker-library/tomcat/issues/35
|
|
||||||
chmod -R +rX .; \
|
|
||||||
chmod 1777 logs temp work; \
|
|
||||||
\
|
|
||||||
# smoke test
|
|
||||||
catalina.sh version
|
|
||||||
|
|
||||||
# verify Tomcat Native is working properly
|
|
||||||
RUN 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
|
|
||||||
|
|
||||||
EXPOSE 8080
|
|
||||||
|
|
||||||
# upstream eclipse-temurin-provided entrypoint script caused https://github.com/docker-library/tomcat/issues/77 to come back as https://github.com/docker-library/tomcat/issues/302; use "/entrypoint.sh" at your own risk
|
|
||||||
ENTRYPOINT []
|
|
||||||
|
|
||||||
CMD ["catalina.sh", "run"]
|
|
||||||
|
|
@ -1,154 +0,0 @@
|
||||||
#
|
|
||||||
# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh"
|
|
||||||
#
|
|
||||||
# PLEASE DO NOT EDIT IT DIRECTLY.
|
|
||||||
#
|
|
||||||
|
|
||||||
FROM amazoncorretto:21-al2-jdk
|
|
||||||
|
|
||||||
ENV CATALINA_HOME /usr/local/tomcat
|
|
||||||
ENV PATH $CATALINA_HOME/bin:$PATH
|
|
||||||
RUN mkdir -p "$CATALINA_HOME"
|
|
||||||
WORKDIR $CATALINA_HOME
|
|
||||||
|
|
||||||
# let "Tomcat Native" live somewhere isolated
|
|
||||||
ENV TOMCAT_NATIVE_LIBDIR $CATALINA_HOME/native-jni-lib
|
|
||||||
ENV LD_LIBRARY_PATH ${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$TOMCAT_NATIVE_LIBDIR
|
|
||||||
|
|
||||||
# see https://www.apache.org/dist/tomcat/tomcat-8/KEYS
|
|
||||||
# see also "versions.sh" (https://github.com/docker-library/tomcat/blob/master/versions.sh)
|
|
||||||
ENV GPG_KEYS 05AB33110949707C93A279E3D3EFE6B686867BA6 07E48665A34DCAFAE522E5E6266191C37C037D42 47309207D818FFD8DCD3F83F1931D684307A10A5 541FBE7D8F78B25E055DDEE13C370389288584E7 5C3C5F3E314C866292F359A8F3AD5C94A67F707E 765908099ACF92702C7D949BFA0C35EA8AA299F1 79F7026C690BAA50B92CD8B66A3AD3F4F22C4FED 9BA44C2621385CB966EBA586F72C284D731FABEE A27677289986DB50844682F8ACB77FC2E86E29AC A9C5DF4D22E99998D9875A5110C01C5A2F6059E7 DCFD35E0BF8CA7344752DE8B6FB21E8933C60243 F3A04C595DB5B6A5F1ECA43E3B7BBB100D811BBE F7DA48BB64BCB84ECBA7EE6935CD23C10D498E23
|
|
||||||
|
|
||||||
ENV TOMCAT_MAJOR 8
|
|
||||||
ENV TOMCAT_VERSION 8.5.100
|
|
||||||
ENV TOMCAT_SHA512 14d8dca911fe9c5b7e636e054ac2e70a532ddc358eda83ed3679e51df8baa7a397cabb8a5777b815014d46064cbc33e8d9ea75b9426dccdae54fb3913d9a54f0
|
|
||||||
|
|
||||||
RUN set -eux; \
|
|
||||||
\
|
|
||||||
# http://yum.baseurl.org/wiki/YumDB.html
|
|
||||||
if ! command -v yumdb > /dev/null; then \
|
|
||||||
yum install -y --setopt=skip_missing_names_on_install=False yum-utils; \
|
|
||||||
yumdb set reason dep yum-utils; \
|
|
||||||
fi; \
|
|
||||||
# a helper function to "yum install" things, but only if they aren't installed (and to set their "reason" to "dep" so "yum autoremove" can purge them for us)
|
|
||||||
_yum_install_temporary() { ( set -eu +x; \
|
|
||||||
local pkg todo=''; \
|
|
||||||
for pkg; do \
|
|
||||||
if ! rpm --query "$pkg" > /dev/null 2>&1; then \
|
|
||||||
todo="$todo $pkg"; \
|
|
||||||
fi; \
|
|
||||||
done; \
|
|
||||||
if [ -n "$todo" ]; then \
|
|
||||||
set -x; \
|
|
||||||
yum install -y --setopt=skip_missing_names_on_install=False $todo; \
|
|
||||||
yumdb set reason dep $todo; \
|
|
||||||
fi; \
|
|
||||||
) }; \
|
|
||||||
_yum_install_temporary gzip tar; \
|
|
||||||
\
|
|
||||||
ddist() { \
|
|
||||||
local f="$1"; shift; \
|
|
||||||
local distFile="$1"; shift; \
|
|
||||||
local mvnFile="${1:-}"; \
|
|
||||||
local success=; \
|
|
||||||
local distUrl=; \
|
|
||||||
for distUrl in \
|
|
||||||
# https://apache.org/history/mirror-history.html
|
|
||||||
"https://dlcdn.apache.org/$distFile" \
|
|
||||||
# if the version is outdated, we have to pull from the archive
|
|
||||||
"https://archive.apache.org/dist/$distFile" \
|
|
||||||
# if all else fails, let's try Maven (https://www.mail-archive.com/users@tomcat.apache.org/msg134940.html; https://mvnrepository.com/artifact/org.apache.tomcat/tomcat; https://repo1.maven.org/maven2/org/apache/tomcat/tomcat/)
|
|
||||||
${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"; \
|
|
||||||
export GNUPGHOME="$(mktemp -d)"; \
|
|
||||||
for key in $GPG_KEYS; do \
|
|
||||||
gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key"; \
|
|
||||||
done; \
|
|
||||||
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*; \
|
|
||||||
rm -rf "$GNUPGHOME"; \
|
|
||||||
\
|
|
||||||
# https://tomcat.apache.org/tomcat-9.0-doc/security-howto.html#Default_web_applications
|
|
||||||
mv webapps webapps.dist; \
|
|
||||||
mkdir webapps; \
|
|
||||||
# we don't delete them completely because they're frankly a pain to get back for users who do want them, and they're generally tiny (~7MB)
|
|
||||||
\
|
|
||||||
nativeBuildDir="$(mktemp -d)"; \
|
|
||||||
tar -xf bin/tomcat-native.tar.gz -C "$nativeBuildDir" --strip-components=1; \
|
|
||||||
_yum_install_temporary \
|
|
||||||
apr-devel \
|
|
||||||
gcc \
|
|
||||||
make \
|
|
||||||
openssl11-devel \
|
|
||||||
; \
|
|
||||||
( \
|
|
||||||
export CATALINA_HOME="$PWD"; \
|
|
||||||
cd "$nativeBuildDir/native"; \
|
|
||||||
aprConfig="$(command -v apr-1-config)"; \
|
|
||||||
./configure \
|
|
||||||
--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; \
|
|
||||||
\
|
|
||||||
# mark any explicit dependencies as manually installed
|
|
||||||
find "$TOMCAT_NATIVE_LIBDIR" -type f -executable -exec ldd '{}' ';' \
|
|
||||||
| awk '/=>/ && $(NF-1) != "=>" { print $(NF-1) }' \
|
|
||||||
| xargs -rt readlink -e \
|
|
||||||
| sort -u \
|
|
||||||
| xargs -rt rpm --query --whatprovides \
|
|
||||||
| sort -u \
|
|
||||||
| tee "$TOMCAT_NATIVE_LIBDIR/.dependencies.txt" \
|
|
||||||
| xargs -r yumdb set reason user \
|
|
||||||
; \
|
|
||||||
\
|
|
||||||
# clean up anything added temporarily and not later marked as necessary
|
|
||||||
yum autoremove -y; \
|
|
||||||
yum clean all; \
|
|
||||||
rm -rf /var/cache/yum; \
|
|
||||||
\
|
|
||||||
# sh removes env vars it doesn't support (ones with periods)
|
|
||||||
# https://github.com/docker-library/tomcat/issues/77
|
|
||||||
find ./bin/ -name '*.sh' -exec sed -ri 's|^#!/bin/sh$|#!/usr/bin/env bash|' '{}' +; \
|
|
||||||
\
|
|
||||||
# fix permissions (especially for running as non-root)
|
|
||||||
# https://github.com/docker-library/tomcat/issues/35
|
|
||||||
chmod -R +rX .; \
|
|
||||||
chmod 1777 logs temp work; \
|
|
||||||
\
|
|
||||||
# smoke test
|
|
||||||
catalina.sh version
|
|
||||||
|
|
||||||
# verify Tomcat Native is working properly
|
|
||||||
RUN 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
|
|
||||||
|
|
||||||
EXPOSE 8080
|
|
||||||
CMD ["catalina.sh", "run"]
|
|
||||||
|
|
@ -1,150 +0,0 @@
|
||||||
#
|
|
||||||
# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh"
|
|
||||||
#
|
|
||||||
# PLEASE DO NOT EDIT IT DIRECTLY.
|
|
||||||
#
|
|
||||||
|
|
||||||
FROM eclipse-temurin:21-jdk-jammy
|
|
||||||
|
|
||||||
ENV CATALINA_HOME /usr/local/tomcat
|
|
||||||
ENV PATH $CATALINA_HOME/bin:$PATH
|
|
||||||
RUN mkdir -p "$CATALINA_HOME"
|
|
||||||
WORKDIR $CATALINA_HOME
|
|
||||||
|
|
||||||
# let "Tomcat Native" live somewhere isolated
|
|
||||||
ENV TOMCAT_NATIVE_LIBDIR $CATALINA_HOME/native-jni-lib
|
|
||||||
ENV LD_LIBRARY_PATH ${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$TOMCAT_NATIVE_LIBDIR
|
|
||||||
|
|
||||||
# see https://www.apache.org/dist/tomcat/tomcat-8/KEYS
|
|
||||||
# see also "versions.sh" (https://github.com/docker-library/tomcat/blob/master/versions.sh)
|
|
||||||
ENV GPG_KEYS 05AB33110949707C93A279E3D3EFE6B686867BA6 07E48665A34DCAFAE522E5E6266191C37C037D42 47309207D818FFD8DCD3F83F1931D684307A10A5 541FBE7D8F78B25E055DDEE13C370389288584E7 5C3C5F3E314C866292F359A8F3AD5C94A67F707E 765908099ACF92702C7D949BFA0C35EA8AA299F1 79F7026C690BAA50B92CD8B66A3AD3F4F22C4FED 9BA44C2621385CB966EBA586F72C284D731FABEE A27677289986DB50844682F8ACB77FC2E86E29AC A9C5DF4D22E99998D9875A5110C01C5A2F6059E7 DCFD35E0BF8CA7344752DE8B6FB21E8933C60243 F3A04C595DB5B6A5F1ECA43E3B7BBB100D811BBE F7DA48BB64BCB84ECBA7EE6935CD23C10D498E23
|
|
||||||
|
|
||||||
ENV TOMCAT_MAJOR 8
|
|
||||||
ENV TOMCAT_VERSION 8.5.100
|
|
||||||
ENV TOMCAT_SHA512 14d8dca911fe9c5b7e636e054ac2e70a532ddc358eda83ed3679e51df8baa7a397cabb8a5777b815014d46064cbc33e8d9ea75b9426dccdae54fb3913d9a54f0
|
|
||||||
|
|
||||||
RUN 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://apache.org/history/mirror-history.html
|
|
||||||
"https://dlcdn.apache.org/$distFile" \
|
|
||||||
# if the version is outdated, we have to pull from the archive
|
|
||||||
"https://archive.apache.org/dist/$distFile" \
|
|
||||||
# if all else fails, let's try Maven (https://www.mail-archive.com/users@tomcat.apache.org/msg134940.html; https://mvnrepository.com/artifact/org.apache.tomcat/tomcat; https://repo1.maven.org/maven2/org/apache/tomcat/tomcat/)
|
|
||||||
${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"; \
|
|
||||||
export GNUPGHOME="$(mktemp -d)"; \
|
|
||||||
for key in $GPG_KEYS; do \
|
|
||||||
gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key"; \
|
|
||||||
done; \
|
|
||||||
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"; \
|
|
||||||
\
|
|
||||||
# https://tomcat.apache.org/tomcat-9.0-doc/security-howto.html#Default_web_applications
|
|
||||||
mv webapps webapps.dist; \
|
|
||||||
mkdir webapps; \
|
|
||||||
# we don't delete them completely because they're frankly a pain to get back for users who do want them, and they're generally tiny (~7MB)
|
|
||||||
\
|
|
||||||
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; \
|
|
||||||
\
|
|
||||||
# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies
|
|
||||||
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/*; \
|
|
||||||
\
|
|
||||||
# sh removes env vars it doesn't support (ones with periods)
|
|
||||||
# https://github.com/docker-library/tomcat/issues/77
|
|
||||||
find ./bin/ -name '*.sh' -exec sed -ri 's|^#!/bin/sh$|#!/usr/bin/env bash|' '{}' +; \
|
|
||||||
\
|
|
||||||
# fix permissions (especially for running as non-root)
|
|
||||||
# https://github.com/docker-library/tomcat/issues/35
|
|
||||||
chmod -R +rX .; \
|
|
||||||
chmod 1777 logs temp work; \
|
|
||||||
\
|
|
||||||
# smoke test
|
|
||||||
catalina.sh version
|
|
||||||
|
|
||||||
# verify Tomcat Native is working properly
|
|
||||||
RUN 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
|
|
||||||
|
|
||||||
EXPOSE 8080
|
|
||||||
|
|
||||||
# upstream eclipse-temurin-provided entrypoint script caused https://github.com/docker-library/tomcat/issues/77 to come back as https://github.com/docker-library/tomcat/issues/302; use "/entrypoint.sh" at your own risk
|
|
||||||
ENTRYPOINT []
|
|
||||||
|
|
||||||
CMD ["catalina.sh", "run"]
|
|
||||||
|
|
@ -1,154 +0,0 @@
|
||||||
#
|
|
||||||
# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh"
|
|
||||||
#
|
|
||||||
# PLEASE DO NOT EDIT IT DIRECTLY.
|
|
||||||
#
|
|
||||||
|
|
||||||
FROM amazoncorretto:8-al2-jdk
|
|
||||||
|
|
||||||
ENV CATALINA_HOME /usr/local/tomcat
|
|
||||||
ENV PATH $CATALINA_HOME/bin:$PATH
|
|
||||||
RUN mkdir -p "$CATALINA_HOME"
|
|
||||||
WORKDIR $CATALINA_HOME
|
|
||||||
|
|
||||||
# let "Tomcat Native" live somewhere isolated
|
|
||||||
ENV TOMCAT_NATIVE_LIBDIR $CATALINA_HOME/native-jni-lib
|
|
||||||
ENV LD_LIBRARY_PATH ${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$TOMCAT_NATIVE_LIBDIR
|
|
||||||
|
|
||||||
# see https://www.apache.org/dist/tomcat/tomcat-8/KEYS
|
|
||||||
# see also "versions.sh" (https://github.com/docker-library/tomcat/blob/master/versions.sh)
|
|
||||||
ENV GPG_KEYS 05AB33110949707C93A279E3D3EFE6B686867BA6 07E48665A34DCAFAE522E5E6266191C37C037D42 47309207D818FFD8DCD3F83F1931D684307A10A5 541FBE7D8F78B25E055DDEE13C370389288584E7 5C3C5F3E314C866292F359A8F3AD5C94A67F707E 765908099ACF92702C7D949BFA0C35EA8AA299F1 79F7026C690BAA50B92CD8B66A3AD3F4F22C4FED 9BA44C2621385CB966EBA586F72C284D731FABEE A27677289986DB50844682F8ACB77FC2E86E29AC A9C5DF4D22E99998D9875A5110C01C5A2F6059E7 DCFD35E0BF8CA7344752DE8B6FB21E8933C60243 F3A04C595DB5B6A5F1ECA43E3B7BBB100D811BBE F7DA48BB64BCB84ECBA7EE6935CD23C10D498E23
|
|
||||||
|
|
||||||
ENV TOMCAT_MAJOR 8
|
|
||||||
ENV TOMCAT_VERSION 8.5.100
|
|
||||||
ENV TOMCAT_SHA512 14d8dca911fe9c5b7e636e054ac2e70a532ddc358eda83ed3679e51df8baa7a397cabb8a5777b815014d46064cbc33e8d9ea75b9426dccdae54fb3913d9a54f0
|
|
||||||
|
|
||||||
RUN set -eux; \
|
|
||||||
\
|
|
||||||
# http://yum.baseurl.org/wiki/YumDB.html
|
|
||||||
if ! command -v yumdb > /dev/null; then \
|
|
||||||
yum install -y --setopt=skip_missing_names_on_install=False yum-utils; \
|
|
||||||
yumdb set reason dep yum-utils; \
|
|
||||||
fi; \
|
|
||||||
# a helper function to "yum install" things, but only if they aren't installed (and to set their "reason" to "dep" so "yum autoremove" can purge them for us)
|
|
||||||
_yum_install_temporary() { ( set -eu +x; \
|
|
||||||
local pkg todo=''; \
|
|
||||||
for pkg; do \
|
|
||||||
if ! rpm --query "$pkg" > /dev/null 2>&1; then \
|
|
||||||
todo="$todo $pkg"; \
|
|
||||||
fi; \
|
|
||||||
done; \
|
|
||||||
if [ -n "$todo" ]; then \
|
|
||||||
set -x; \
|
|
||||||
yum install -y --setopt=skip_missing_names_on_install=False $todo; \
|
|
||||||
yumdb set reason dep $todo; \
|
|
||||||
fi; \
|
|
||||||
) }; \
|
|
||||||
_yum_install_temporary gzip tar; \
|
|
||||||
\
|
|
||||||
ddist() { \
|
|
||||||
local f="$1"; shift; \
|
|
||||||
local distFile="$1"; shift; \
|
|
||||||
local mvnFile="${1:-}"; \
|
|
||||||
local success=; \
|
|
||||||
local distUrl=; \
|
|
||||||
for distUrl in \
|
|
||||||
# https://apache.org/history/mirror-history.html
|
|
||||||
"https://dlcdn.apache.org/$distFile" \
|
|
||||||
# if the version is outdated, we have to pull from the archive
|
|
||||||
"https://archive.apache.org/dist/$distFile" \
|
|
||||||
# if all else fails, let's try Maven (https://www.mail-archive.com/users@tomcat.apache.org/msg134940.html; https://mvnrepository.com/artifact/org.apache.tomcat/tomcat; https://repo1.maven.org/maven2/org/apache/tomcat/tomcat/)
|
|
||||||
${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"; \
|
|
||||||
export GNUPGHOME="$(mktemp -d)"; \
|
|
||||||
for key in $GPG_KEYS; do \
|
|
||||||
gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key"; \
|
|
||||||
done; \
|
|
||||||
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*; \
|
|
||||||
rm -rf "$GNUPGHOME"; \
|
|
||||||
\
|
|
||||||
# https://tomcat.apache.org/tomcat-9.0-doc/security-howto.html#Default_web_applications
|
|
||||||
mv webapps webapps.dist; \
|
|
||||||
mkdir webapps; \
|
|
||||||
# we don't delete them completely because they're frankly a pain to get back for users who do want them, and they're generally tiny (~7MB)
|
|
||||||
\
|
|
||||||
nativeBuildDir="$(mktemp -d)"; \
|
|
||||||
tar -xf bin/tomcat-native.tar.gz -C "$nativeBuildDir" --strip-components=1; \
|
|
||||||
_yum_install_temporary \
|
|
||||||
apr-devel \
|
|
||||||
gcc \
|
|
||||||
make \
|
|
||||||
openssl11-devel \
|
|
||||||
; \
|
|
||||||
( \
|
|
||||||
export CATALINA_HOME="$PWD"; \
|
|
||||||
cd "$nativeBuildDir/native"; \
|
|
||||||
aprConfig="$(command -v apr-1-config)"; \
|
|
||||||
./configure \
|
|
||||||
--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; \
|
|
||||||
\
|
|
||||||
# mark any explicit dependencies as manually installed
|
|
||||||
find "$TOMCAT_NATIVE_LIBDIR" -type f -executable -exec ldd '{}' ';' \
|
|
||||||
| awk '/=>/ && $(NF-1) != "=>" { print $(NF-1) }' \
|
|
||||||
| xargs -rt readlink -e \
|
|
||||||
| sort -u \
|
|
||||||
| xargs -rt rpm --query --whatprovides \
|
|
||||||
| sort -u \
|
|
||||||
| tee "$TOMCAT_NATIVE_LIBDIR/.dependencies.txt" \
|
|
||||||
| xargs -r yumdb set reason user \
|
|
||||||
; \
|
|
||||||
\
|
|
||||||
# clean up anything added temporarily and not later marked as necessary
|
|
||||||
yum autoremove -y; \
|
|
||||||
yum clean all; \
|
|
||||||
rm -rf /var/cache/yum; \
|
|
||||||
\
|
|
||||||
# sh removes env vars it doesn't support (ones with periods)
|
|
||||||
# https://github.com/docker-library/tomcat/issues/77
|
|
||||||
find ./bin/ -name '*.sh' -exec sed -ri 's|^#!/bin/sh$|#!/usr/bin/env bash|' '{}' +; \
|
|
||||||
\
|
|
||||||
# fix permissions (especially for running as non-root)
|
|
||||||
# https://github.com/docker-library/tomcat/issues/35
|
|
||||||
chmod -R +rX .; \
|
|
||||||
chmod 1777 logs temp work; \
|
|
||||||
\
|
|
||||||
# smoke test
|
|
||||||
catalina.sh version
|
|
||||||
|
|
||||||
# verify Tomcat Native is working properly
|
|
||||||
RUN 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
|
|
||||||
|
|
||||||
EXPOSE 8080
|
|
||||||
CMD ["catalina.sh", "run"]
|
|
||||||
|
|
@ -1,150 +0,0 @@
|
||||||
#
|
|
||||||
# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh"
|
|
||||||
#
|
|
||||||
# PLEASE DO NOT EDIT IT DIRECTLY.
|
|
||||||
#
|
|
||||||
|
|
||||||
FROM eclipse-temurin:8-jdk-focal
|
|
||||||
|
|
||||||
ENV CATALINA_HOME /usr/local/tomcat
|
|
||||||
ENV PATH $CATALINA_HOME/bin:$PATH
|
|
||||||
RUN mkdir -p "$CATALINA_HOME"
|
|
||||||
WORKDIR $CATALINA_HOME
|
|
||||||
|
|
||||||
# let "Tomcat Native" live somewhere isolated
|
|
||||||
ENV TOMCAT_NATIVE_LIBDIR $CATALINA_HOME/native-jni-lib
|
|
||||||
ENV LD_LIBRARY_PATH ${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$TOMCAT_NATIVE_LIBDIR
|
|
||||||
|
|
||||||
# see https://www.apache.org/dist/tomcat/tomcat-8/KEYS
|
|
||||||
# see also "versions.sh" (https://github.com/docker-library/tomcat/blob/master/versions.sh)
|
|
||||||
ENV GPG_KEYS 05AB33110949707C93A279E3D3EFE6B686867BA6 07E48665A34DCAFAE522E5E6266191C37C037D42 47309207D818FFD8DCD3F83F1931D684307A10A5 541FBE7D8F78B25E055DDEE13C370389288584E7 5C3C5F3E314C866292F359A8F3AD5C94A67F707E 765908099ACF92702C7D949BFA0C35EA8AA299F1 79F7026C690BAA50B92CD8B66A3AD3F4F22C4FED 9BA44C2621385CB966EBA586F72C284D731FABEE A27677289986DB50844682F8ACB77FC2E86E29AC A9C5DF4D22E99998D9875A5110C01C5A2F6059E7 DCFD35E0BF8CA7344752DE8B6FB21E8933C60243 F3A04C595DB5B6A5F1ECA43E3B7BBB100D811BBE F7DA48BB64BCB84ECBA7EE6935CD23C10D498E23
|
|
||||||
|
|
||||||
ENV TOMCAT_MAJOR 8
|
|
||||||
ENV TOMCAT_VERSION 8.5.100
|
|
||||||
ENV TOMCAT_SHA512 14d8dca911fe9c5b7e636e054ac2e70a532ddc358eda83ed3679e51df8baa7a397cabb8a5777b815014d46064cbc33e8d9ea75b9426dccdae54fb3913d9a54f0
|
|
||||||
|
|
||||||
RUN 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://apache.org/history/mirror-history.html
|
|
||||||
"https://dlcdn.apache.org/$distFile" \
|
|
||||||
# if the version is outdated, we have to pull from the archive
|
|
||||||
"https://archive.apache.org/dist/$distFile" \
|
|
||||||
# if all else fails, let's try Maven (https://www.mail-archive.com/users@tomcat.apache.org/msg134940.html; https://mvnrepository.com/artifact/org.apache.tomcat/tomcat; https://repo1.maven.org/maven2/org/apache/tomcat/tomcat/)
|
|
||||||
${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"; \
|
|
||||||
export GNUPGHOME="$(mktemp -d)"; \
|
|
||||||
for key in $GPG_KEYS; do \
|
|
||||||
gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key"; \
|
|
||||||
done; \
|
|
||||||
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"; \
|
|
||||||
\
|
|
||||||
# https://tomcat.apache.org/tomcat-9.0-doc/security-howto.html#Default_web_applications
|
|
||||||
mv webapps webapps.dist; \
|
|
||||||
mkdir webapps; \
|
|
||||||
# we don't delete them completely because they're frankly a pain to get back for users who do want them, and they're generally tiny (~7MB)
|
|
||||||
\
|
|
||||||
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; \
|
|
||||||
\
|
|
||||||
# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies
|
|
||||||
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/*; \
|
|
||||||
\
|
|
||||||
# sh removes env vars it doesn't support (ones with periods)
|
|
||||||
# https://github.com/docker-library/tomcat/issues/77
|
|
||||||
find ./bin/ -name '*.sh' -exec sed -ri 's|^#!/bin/sh$|#!/usr/bin/env bash|' '{}' +; \
|
|
||||||
\
|
|
||||||
# fix permissions (especially for running as non-root)
|
|
||||||
# https://github.com/docker-library/tomcat/issues/35
|
|
||||||
chmod -R +rX .; \
|
|
||||||
chmod 1777 logs temp work; \
|
|
||||||
\
|
|
||||||
# smoke test
|
|
||||||
catalina.sh version
|
|
||||||
|
|
||||||
# verify Tomcat Native is working properly
|
|
||||||
RUN 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
|
|
||||||
|
|
||||||
EXPOSE 8080
|
|
||||||
|
|
||||||
# upstream eclipse-temurin-provided entrypoint script caused https://github.com/docker-library/tomcat/issues/77 to come back as https://github.com/docker-library/tomcat/issues/302; use "/entrypoint.sh" at your own risk
|
|
||||||
ENTRYPOINT []
|
|
||||||
|
|
||||||
CMD ["catalina.sh", "run"]
|
|
||||||
|
|
@ -1,150 +0,0 @@
|
||||||
#
|
|
||||||
# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh"
|
|
||||||
#
|
|
||||||
# PLEASE DO NOT EDIT IT DIRECTLY.
|
|
||||||
#
|
|
||||||
|
|
||||||
FROM eclipse-temurin:8-jdk-jammy
|
|
||||||
|
|
||||||
ENV CATALINA_HOME /usr/local/tomcat
|
|
||||||
ENV PATH $CATALINA_HOME/bin:$PATH
|
|
||||||
RUN mkdir -p "$CATALINA_HOME"
|
|
||||||
WORKDIR $CATALINA_HOME
|
|
||||||
|
|
||||||
# let "Tomcat Native" live somewhere isolated
|
|
||||||
ENV TOMCAT_NATIVE_LIBDIR $CATALINA_HOME/native-jni-lib
|
|
||||||
ENV LD_LIBRARY_PATH ${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$TOMCAT_NATIVE_LIBDIR
|
|
||||||
|
|
||||||
# see https://www.apache.org/dist/tomcat/tomcat-8/KEYS
|
|
||||||
# see also "versions.sh" (https://github.com/docker-library/tomcat/blob/master/versions.sh)
|
|
||||||
ENV GPG_KEYS 05AB33110949707C93A279E3D3EFE6B686867BA6 07E48665A34DCAFAE522E5E6266191C37C037D42 47309207D818FFD8DCD3F83F1931D684307A10A5 541FBE7D8F78B25E055DDEE13C370389288584E7 5C3C5F3E314C866292F359A8F3AD5C94A67F707E 765908099ACF92702C7D949BFA0C35EA8AA299F1 79F7026C690BAA50B92CD8B66A3AD3F4F22C4FED 9BA44C2621385CB966EBA586F72C284D731FABEE A27677289986DB50844682F8ACB77FC2E86E29AC A9C5DF4D22E99998D9875A5110C01C5A2F6059E7 DCFD35E0BF8CA7344752DE8B6FB21E8933C60243 F3A04C595DB5B6A5F1ECA43E3B7BBB100D811BBE F7DA48BB64BCB84ECBA7EE6935CD23C10D498E23
|
|
||||||
|
|
||||||
ENV TOMCAT_MAJOR 8
|
|
||||||
ENV TOMCAT_VERSION 8.5.100
|
|
||||||
ENV TOMCAT_SHA512 14d8dca911fe9c5b7e636e054ac2e70a532ddc358eda83ed3679e51df8baa7a397cabb8a5777b815014d46064cbc33e8d9ea75b9426dccdae54fb3913d9a54f0
|
|
||||||
|
|
||||||
RUN 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://apache.org/history/mirror-history.html
|
|
||||||
"https://dlcdn.apache.org/$distFile" \
|
|
||||||
# if the version is outdated, we have to pull from the archive
|
|
||||||
"https://archive.apache.org/dist/$distFile" \
|
|
||||||
# if all else fails, let's try Maven (https://www.mail-archive.com/users@tomcat.apache.org/msg134940.html; https://mvnrepository.com/artifact/org.apache.tomcat/tomcat; https://repo1.maven.org/maven2/org/apache/tomcat/tomcat/)
|
|
||||||
${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"; \
|
|
||||||
export GNUPGHOME="$(mktemp -d)"; \
|
|
||||||
for key in $GPG_KEYS; do \
|
|
||||||
gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key"; \
|
|
||||||
done; \
|
|
||||||
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"; \
|
|
||||||
\
|
|
||||||
# https://tomcat.apache.org/tomcat-9.0-doc/security-howto.html#Default_web_applications
|
|
||||||
mv webapps webapps.dist; \
|
|
||||||
mkdir webapps; \
|
|
||||||
# we don't delete them completely because they're frankly a pain to get back for users who do want them, and they're generally tiny (~7MB)
|
|
||||||
\
|
|
||||||
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; \
|
|
||||||
\
|
|
||||||
# reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies
|
|
||||||
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/*; \
|
|
||||||
\
|
|
||||||
# sh removes env vars it doesn't support (ones with periods)
|
|
||||||
# https://github.com/docker-library/tomcat/issues/77
|
|
||||||
find ./bin/ -name '*.sh' -exec sed -ri 's|^#!/bin/sh$|#!/usr/bin/env bash|' '{}' +; \
|
|
||||||
\
|
|
||||||
# fix permissions (especially for running as non-root)
|
|
||||||
# https://github.com/docker-library/tomcat/issues/35
|
|
||||||
chmod -R +rX .; \
|
|
||||||
chmod 1777 logs temp work; \
|
|
||||||
\
|
|
||||||
# smoke test
|
|
||||||
catalina.sh version
|
|
||||||
|
|
||||||
# verify Tomcat Native is working properly
|
|
||||||
RUN 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
|
|
||||||
|
|
||||||
EXPOSE 8080
|
|
||||||
|
|
||||||
# upstream eclipse-temurin-provided entrypoint script caused https://github.com/docker-library/tomcat/issues/77 to come back as https://github.com/docker-library/tomcat/issues/302; use "/entrypoint.sh" at your own risk
|
|
||||||
ENTRYPOINT []
|
|
||||||
|
|
||||||
CMD ["catalina.sh", "run"]
|
|
||||||
|
|
@ -1,47 +0,0 @@
|
||||||
#
|
|
||||||
# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh"
|
|
||||||
#
|
|
||||||
# PLEASE DO NOT EDIT IT DIRECTLY.
|
|
||||||
#
|
|
||||||
|
|
||||||
FROM eclipse-temurin:11-jre-focal
|
|
||||||
|
|
||||||
ENV CATALINA_HOME /usr/local/tomcat
|
|
||||||
ENV PATH $CATALINA_HOME/bin:$PATH
|
|
||||||
RUN mkdir -p "$CATALINA_HOME"
|
|
||||||
WORKDIR $CATALINA_HOME
|
|
||||||
|
|
||||||
# let "Tomcat Native" live somewhere isolated
|
|
||||||
ENV TOMCAT_NATIVE_LIBDIR $CATALINA_HOME/native-jni-lib
|
|
||||||
ENV LD_LIBRARY_PATH ${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$TOMCAT_NATIVE_LIBDIR
|
|
||||||
|
|
||||||
# see https://www.apache.org/dist/tomcat/tomcat-8/KEYS
|
|
||||||
# see also "versions.sh" (https://github.com/docker-library/tomcat/blob/master/versions.sh)
|
|
||||||
ENV GPG_KEYS 05AB33110949707C93A279E3D3EFE6B686867BA6 07E48665A34DCAFAE522E5E6266191C37C037D42 47309207D818FFD8DCD3F83F1931D684307A10A5 541FBE7D8F78B25E055DDEE13C370389288584E7 5C3C5F3E314C866292F359A8F3AD5C94A67F707E 765908099ACF92702C7D949BFA0C35EA8AA299F1 79F7026C690BAA50B92CD8B66A3AD3F4F22C4FED 9BA44C2621385CB966EBA586F72C284D731FABEE A27677289986DB50844682F8ACB77FC2E86E29AC A9C5DF4D22E99998D9875A5110C01C5A2F6059E7 DCFD35E0BF8CA7344752DE8B6FB21E8933C60243 F3A04C595DB5B6A5F1ECA43E3B7BBB100D811BBE F7DA48BB64BCB84ECBA7EE6935CD23C10D498E23
|
|
||||||
|
|
||||||
ENV TOMCAT_MAJOR 8
|
|
||||||
ENV TOMCAT_VERSION 8.5.100
|
|
||||||
ENV TOMCAT_SHA512 14d8dca911fe9c5b7e636e054ac2e70a532ddc358eda83ed3679e51df8baa7a397cabb8a5777b815014d46064cbc33e8d9ea75b9426dccdae54fb3913d9a54f0
|
|
||||||
|
|
||||||
COPY --from=tomcat:8.5.100-jdk11-temurin-focal $CATALINA_HOME $CATALINA_HOME
|
|
||||||
RUN set -eux; \
|
|
||||||
apt-get update; \
|
|
||||||
xargs -rt apt-get install -y --no-install-recommends < "$TOMCAT_NATIVE_LIBDIR/.dependencies.txt"; \
|
|
||||||
rm -rf /var/lib/apt/lists/*
|
|
||||||
|
|
||||||
# verify Tomcat Native is working properly
|
|
||||||
RUN 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
|
|
||||||
|
|
||||||
EXPOSE 8080
|
|
||||||
|
|
||||||
# upstream eclipse-temurin-provided entrypoint script caused https://github.com/docker-library/tomcat/issues/77 to come back as https://github.com/docker-library/tomcat/issues/302; use "/entrypoint.sh" at your own risk
|
|
||||||
ENTRYPOINT []
|
|
||||||
|
|
||||||
CMD ["catalina.sh", "run"]
|
|
||||||
|
|
@ -1,47 +0,0 @@
|
||||||
#
|
|
||||||
# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh"
|
|
||||||
#
|
|
||||||
# PLEASE DO NOT EDIT IT DIRECTLY.
|
|
||||||
#
|
|
||||||
|
|
||||||
FROM eclipse-temurin:11-jre-jammy
|
|
||||||
|
|
||||||
ENV CATALINA_HOME /usr/local/tomcat
|
|
||||||
ENV PATH $CATALINA_HOME/bin:$PATH
|
|
||||||
RUN mkdir -p "$CATALINA_HOME"
|
|
||||||
WORKDIR $CATALINA_HOME
|
|
||||||
|
|
||||||
# let "Tomcat Native" live somewhere isolated
|
|
||||||
ENV TOMCAT_NATIVE_LIBDIR $CATALINA_HOME/native-jni-lib
|
|
||||||
ENV LD_LIBRARY_PATH ${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$TOMCAT_NATIVE_LIBDIR
|
|
||||||
|
|
||||||
# see https://www.apache.org/dist/tomcat/tomcat-8/KEYS
|
|
||||||
# see also "versions.sh" (https://github.com/docker-library/tomcat/blob/master/versions.sh)
|
|
||||||
ENV GPG_KEYS 05AB33110949707C93A279E3D3EFE6B686867BA6 07E48665A34DCAFAE522E5E6266191C37C037D42 47309207D818FFD8DCD3F83F1931D684307A10A5 541FBE7D8F78B25E055DDEE13C370389288584E7 5C3C5F3E314C866292F359A8F3AD5C94A67F707E 765908099ACF92702C7D949BFA0C35EA8AA299F1 79F7026C690BAA50B92CD8B66A3AD3F4F22C4FED 9BA44C2621385CB966EBA586F72C284D731FABEE A27677289986DB50844682F8ACB77FC2E86E29AC A9C5DF4D22E99998D9875A5110C01C5A2F6059E7 DCFD35E0BF8CA7344752DE8B6FB21E8933C60243 F3A04C595DB5B6A5F1ECA43E3B7BBB100D811BBE F7DA48BB64BCB84ECBA7EE6935CD23C10D498E23
|
|
||||||
|
|
||||||
ENV TOMCAT_MAJOR 8
|
|
||||||
ENV TOMCAT_VERSION 8.5.100
|
|
||||||
ENV TOMCAT_SHA512 14d8dca911fe9c5b7e636e054ac2e70a532ddc358eda83ed3679e51df8baa7a397cabb8a5777b815014d46064cbc33e8d9ea75b9426dccdae54fb3913d9a54f0
|
|
||||||
|
|
||||||
COPY --from=tomcat:8.5.100-jdk11-temurin-jammy $CATALINA_HOME $CATALINA_HOME
|
|
||||||
RUN set -eux; \
|
|
||||||
apt-get update; \
|
|
||||||
xargs -rt apt-get install -y --no-install-recommends < "$TOMCAT_NATIVE_LIBDIR/.dependencies.txt"; \
|
|
||||||
rm -rf /var/lib/apt/lists/*
|
|
||||||
|
|
||||||
# verify Tomcat Native is working properly
|
|
||||||
RUN 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
|
|
||||||
|
|
||||||
EXPOSE 8080
|
|
||||||
|
|
||||||
# upstream eclipse-temurin-provided entrypoint script caused https://github.com/docker-library/tomcat/issues/77 to come back as https://github.com/docker-library/tomcat/issues/302; use "/entrypoint.sh" at your own risk
|
|
||||||
ENTRYPOINT []
|
|
||||||
|
|
||||||
CMD ["catalina.sh", "run"]
|
|
||||||
|
|
@ -1,47 +0,0 @@
|
||||||
#
|
|
||||||
# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh"
|
|
||||||
#
|
|
||||||
# PLEASE DO NOT EDIT IT DIRECTLY.
|
|
||||||
#
|
|
||||||
|
|
||||||
FROM eclipse-temurin:17-jre-focal
|
|
||||||
|
|
||||||
ENV CATALINA_HOME /usr/local/tomcat
|
|
||||||
ENV PATH $CATALINA_HOME/bin:$PATH
|
|
||||||
RUN mkdir -p "$CATALINA_HOME"
|
|
||||||
WORKDIR $CATALINA_HOME
|
|
||||||
|
|
||||||
# let "Tomcat Native" live somewhere isolated
|
|
||||||
ENV TOMCAT_NATIVE_LIBDIR $CATALINA_HOME/native-jni-lib
|
|
||||||
ENV LD_LIBRARY_PATH ${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$TOMCAT_NATIVE_LIBDIR
|
|
||||||
|
|
||||||
# see https://www.apache.org/dist/tomcat/tomcat-8/KEYS
|
|
||||||
# see also "versions.sh" (https://github.com/docker-library/tomcat/blob/master/versions.sh)
|
|
||||||
ENV GPG_KEYS 05AB33110949707C93A279E3D3EFE6B686867BA6 07E48665A34DCAFAE522E5E6266191C37C037D42 47309207D818FFD8DCD3F83F1931D684307A10A5 541FBE7D8F78B25E055DDEE13C370389288584E7 5C3C5F3E314C866292F359A8F3AD5C94A67F707E 765908099ACF92702C7D949BFA0C35EA8AA299F1 79F7026C690BAA50B92CD8B66A3AD3F4F22C4FED 9BA44C2621385CB966EBA586F72C284D731FABEE A27677289986DB50844682F8ACB77FC2E86E29AC A9C5DF4D22E99998D9875A5110C01C5A2F6059E7 DCFD35E0BF8CA7344752DE8B6FB21E8933C60243 F3A04C595DB5B6A5F1ECA43E3B7BBB100D811BBE F7DA48BB64BCB84ECBA7EE6935CD23C10D498E23
|
|
||||||
|
|
||||||
ENV TOMCAT_MAJOR 8
|
|
||||||
ENV TOMCAT_VERSION 8.5.100
|
|
||||||
ENV TOMCAT_SHA512 14d8dca911fe9c5b7e636e054ac2e70a532ddc358eda83ed3679e51df8baa7a397cabb8a5777b815014d46064cbc33e8d9ea75b9426dccdae54fb3913d9a54f0
|
|
||||||
|
|
||||||
COPY --from=tomcat:8.5.100-jdk17-temurin-focal $CATALINA_HOME $CATALINA_HOME
|
|
||||||
RUN set -eux; \
|
|
||||||
apt-get update; \
|
|
||||||
xargs -rt apt-get install -y --no-install-recommends < "$TOMCAT_NATIVE_LIBDIR/.dependencies.txt"; \
|
|
||||||
rm -rf /var/lib/apt/lists/*
|
|
||||||
|
|
||||||
# verify Tomcat Native is working properly
|
|
||||||
RUN 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
|
|
||||||
|
|
||||||
EXPOSE 8080
|
|
||||||
|
|
||||||
# upstream eclipse-temurin-provided entrypoint script caused https://github.com/docker-library/tomcat/issues/77 to come back as https://github.com/docker-library/tomcat/issues/302; use "/entrypoint.sh" at your own risk
|
|
||||||
ENTRYPOINT []
|
|
||||||
|
|
||||||
CMD ["catalina.sh", "run"]
|
|
||||||
|
|
@ -1,47 +0,0 @@
|
||||||
#
|
|
||||||
# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh"
|
|
||||||
#
|
|
||||||
# PLEASE DO NOT EDIT IT DIRECTLY.
|
|
||||||
#
|
|
||||||
|
|
||||||
FROM eclipse-temurin:17-jre-jammy
|
|
||||||
|
|
||||||
ENV CATALINA_HOME /usr/local/tomcat
|
|
||||||
ENV PATH $CATALINA_HOME/bin:$PATH
|
|
||||||
RUN mkdir -p "$CATALINA_HOME"
|
|
||||||
WORKDIR $CATALINA_HOME
|
|
||||||
|
|
||||||
# let "Tomcat Native" live somewhere isolated
|
|
||||||
ENV TOMCAT_NATIVE_LIBDIR $CATALINA_HOME/native-jni-lib
|
|
||||||
ENV LD_LIBRARY_PATH ${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$TOMCAT_NATIVE_LIBDIR
|
|
||||||
|
|
||||||
# see https://www.apache.org/dist/tomcat/tomcat-8/KEYS
|
|
||||||
# see also "versions.sh" (https://github.com/docker-library/tomcat/blob/master/versions.sh)
|
|
||||||
ENV GPG_KEYS 05AB33110949707C93A279E3D3EFE6B686867BA6 07E48665A34DCAFAE522E5E6266191C37C037D42 47309207D818FFD8DCD3F83F1931D684307A10A5 541FBE7D8F78B25E055DDEE13C370389288584E7 5C3C5F3E314C866292F359A8F3AD5C94A67F707E 765908099ACF92702C7D949BFA0C35EA8AA299F1 79F7026C690BAA50B92CD8B66A3AD3F4F22C4FED 9BA44C2621385CB966EBA586F72C284D731FABEE A27677289986DB50844682F8ACB77FC2E86E29AC A9C5DF4D22E99998D9875A5110C01C5A2F6059E7 DCFD35E0BF8CA7344752DE8B6FB21E8933C60243 F3A04C595DB5B6A5F1ECA43E3B7BBB100D811BBE F7DA48BB64BCB84ECBA7EE6935CD23C10D498E23
|
|
||||||
|
|
||||||
ENV TOMCAT_MAJOR 8
|
|
||||||
ENV TOMCAT_VERSION 8.5.100
|
|
||||||
ENV TOMCAT_SHA512 14d8dca911fe9c5b7e636e054ac2e70a532ddc358eda83ed3679e51df8baa7a397cabb8a5777b815014d46064cbc33e8d9ea75b9426dccdae54fb3913d9a54f0
|
|
||||||
|
|
||||||
COPY --from=tomcat:8.5.100-jdk17-temurin-jammy $CATALINA_HOME $CATALINA_HOME
|
|
||||||
RUN set -eux; \
|
|
||||||
apt-get update; \
|
|
||||||
xargs -rt apt-get install -y --no-install-recommends < "$TOMCAT_NATIVE_LIBDIR/.dependencies.txt"; \
|
|
||||||
rm -rf /var/lib/apt/lists/*
|
|
||||||
|
|
||||||
# verify Tomcat Native is working properly
|
|
||||||
RUN 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
|
|
||||||
|
|
||||||
EXPOSE 8080
|
|
||||||
|
|
||||||
# upstream eclipse-temurin-provided entrypoint script caused https://github.com/docker-library/tomcat/issues/77 to come back as https://github.com/docker-library/tomcat/issues/302; use "/entrypoint.sh" at your own risk
|
|
||||||
ENTRYPOINT []
|
|
||||||
|
|
||||||
CMD ["catalina.sh", "run"]
|
|
||||||
|
|
@ -1,47 +0,0 @@
|
||||||
#
|
|
||||||
# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh"
|
|
||||||
#
|
|
||||||
# PLEASE DO NOT EDIT IT DIRECTLY.
|
|
||||||
#
|
|
||||||
|
|
||||||
FROM eclipse-temurin:21-jre-jammy
|
|
||||||
|
|
||||||
ENV CATALINA_HOME /usr/local/tomcat
|
|
||||||
ENV PATH $CATALINA_HOME/bin:$PATH
|
|
||||||
RUN mkdir -p "$CATALINA_HOME"
|
|
||||||
WORKDIR $CATALINA_HOME
|
|
||||||
|
|
||||||
# let "Tomcat Native" live somewhere isolated
|
|
||||||
ENV TOMCAT_NATIVE_LIBDIR $CATALINA_HOME/native-jni-lib
|
|
||||||
ENV LD_LIBRARY_PATH ${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$TOMCAT_NATIVE_LIBDIR
|
|
||||||
|
|
||||||
# see https://www.apache.org/dist/tomcat/tomcat-8/KEYS
|
|
||||||
# see also "versions.sh" (https://github.com/docker-library/tomcat/blob/master/versions.sh)
|
|
||||||
ENV GPG_KEYS 05AB33110949707C93A279E3D3EFE6B686867BA6 07E48665A34DCAFAE522E5E6266191C37C037D42 47309207D818FFD8DCD3F83F1931D684307A10A5 541FBE7D8F78B25E055DDEE13C370389288584E7 5C3C5F3E314C866292F359A8F3AD5C94A67F707E 765908099ACF92702C7D949BFA0C35EA8AA299F1 79F7026C690BAA50B92CD8B66A3AD3F4F22C4FED 9BA44C2621385CB966EBA586F72C284D731FABEE A27677289986DB50844682F8ACB77FC2E86E29AC A9C5DF4D22E99998D9875A5110C01C5A2F6059E7 DCFD35E0BF8CA7344752DE8B6FB21E8933C60243 F3A04C595DB5B6A5F1ECA43E3B7BBB100D811BBE F7DA48BB64BCB84ECBA7EE6935CD23C10D498E23
|
|
||||||
|
|
||||||
ENV TOMCAT_MAJOR 8
|
|
||||||
ENV TOMCAT_VERSION 8.5.100
|
|
||||||
ENV TOMCAT_SHA512 14d8dca911fe9c5b7e636e054ac2e70a532ddc358eda83ed3679e51df8baa7a397cabb8a5777b815014d46064cbc33e8d9ea75b9426dccdae54fb3913d9a54f0
|
|
||||||
|
|
||||||
COPY --from=tomcat:8.5.100-jdk21-temurin-jammy $CATALINA_HOME $CATALINA_HOME
|
|
||||||
RUN set -eux; \
|
|
||||||
apt-get update; \
|
|
||||||
xargs -rt apt-get install -y --no-install-recommends < "$TOMCAT_NATIVE_LIBDIR/.dependencies.txt"; \
|
|
||||||
rm -rf /var/lib/apt/lists/*
|
|
||||||
|
|
||||||
# verify Tomcat Native is working properly
|
|
||||||
RUN 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
|
|
||||||
|
|
||||||
EXPOSE 8080
|
|
||||||
|
|
||||||
# upstream eclipse-temurin-provided entrypoint script caused https://github.com/docker-library/tomcat/issues/77 to come back as https://github.com/docker-library/tomcat/issues/302; use "/entrypoint.sh" at your own risk
|
|
||||||
ENTRYPOINT []
|
|
||||||
|
|
||||||
CMD ["catalina.sh", "run"]
|
|
||||||
|
|
@ -1,47 +0,0 @@
|
||||||
#
|
|
||||||
# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh"
|
|
||||||
#
|
|
||||||
# PLEASE DO NOT EDIT IT DIRECTLY.
|
|
||||||
#
|
|
||||||
|
|
||||||
FROM eclipse-temurin:8-jre-focal
|
|
||||||
|
|
||||||
ENV CATALINA_HOME /usr/local/tomcat
|
|
||||||
ENV PATH $CATALINA_HOME/bin:$PATH
|
|
||||||
RUN mkdir -p "$CATALINA_HOME"
|
|
||||||
WORKDIR $CATALINA_HOME
|
|
||||||
|
|
||||||
# let "Tomcat Native" live somewhere isolated
|
|
||||||
ENV TOMCAT_NATIVE_LIBDIR $CATALINA_HOME/native-jni-lib
|
|
||||||
ENV LD_LIBRARY_PATH ${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$TOMCAT_NATIVE_LIBDIR
|
|
||||||
|
|
||||||
# see https://www.apache.org/dist/tomcat/tomcat-8/KEYS
|
|
||||||
# see also "versions.sh" (https://github.com/docker-library/tomcat/blob/master/versions.sh)
|
|
||||||
ENV GPG_KEYS 05AB33110949707C93A279E3D3EFE6B686867BA6 07E48665A34DCAFAE522E5E6266191C37C037D42 47309207D818FFD8DCD3F83F1931D684307A10A5 541FBE7D8F78B25E055DDEE13C370389288584E7 5C3C5F3E314C866292F359A8F3AD5C94A67F707E 765908099ACF92702C7D949BFA0C35EA8AA299F1 79F7026C690BAA50B92CD8B66A3AD3F4F22C4FED 9BA44C2621385CB966EBA586F72C284D731FABEE A27677289986DB50844682F8ACB77FC2E86E29AC A9C5DF4D22E99998D9875A5110C01C5A2F6059E7 DCFD35E0BF8CA7344752DE8B6FB21E8933C60243 F3A04C595DB5B6A5F1ECA43E3B7BBB100D811BBE F7DA48BB64BCB84ECBA7EE6935CD23C10D498E23
|
|
||||||
|
|
||||||
ENV TOMCAT_MAJOR 8
|
|
||||||
ENV TOMCAT_VERSION 8.5.100
|
|
||||||
ENV TOMCAT_SHA512 14d8dca911fe9c5b7e636e054ac2e70a532ddc358eda83ed3679e51df8baa7a397cabb8a5777b815014d46064cbc33e8d9ea75b9426dccdae54fb3913d9a54f0
|
|
||||||
|
|
||||||
COPY --from=tomcat:8.5.100-jdk8-temurin-focal $CATALINA_HOME $CATALINA_HOME
|
|
||||||
RUN set -eux; \
|
|
||||||
apt-get update; \
|
|
||||||
xargs -rt apt-get install -y --no-install-recommends < "$TOMCAT_NATIVE_LIBDIR/.dependencies.txt"; \
|
|
||||||
rm -rf /var/lib/apt/lists/*
|
|
||||||
|
|
||||||
# verify Tomcat Native is working properly
|
|
||||||
RUN 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
|
|
||||||
|
|
||||||
EXPOSE 8080
|
|
||||||
|
|
||||||
# upstream eclipse-temurin-provided entrypoint script caused https://github.com/docker-library/tomcat/issues/77 to come back as https://github.com/docker-library/tomcat/issues/302; use "/entrypoint.sh" at your own risk
|
|
||||||
ENTRYPOINT []
|
|
||||||
|
|
||||||
CMD ["catalina.sh", "run"]
|
|
||||||
|
|
@ -1,47 +0,0 @@
|
||||||
#
|
|
||||||
# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh"
|
|
||||||
#
|
|
||||||
# PLEASE DO NOT EDIT IT DIRECTLY.
|
|
||||||
#
|
|
||||||
|
|
||||||
FROM eclipse-temurin:8-jre-jammy
|
|
||||||
|
|
||||||
ENV CATALINA_HOME /usr/local/tomcat
|
|
||||||
ENV PATH $CATALINA_HOME/bin:$PATH
|
|
||||||
RUN mkdir -p "$CATALINA_HOME"
|
|
||||||
WORKDIR $CATALINA_HOME
|
|
||||||
|
|
||||||
# let "Tomcat Native" live somewhere isolated
|
|
||||||
ENV TOMCAT_NATIVE_LIBDIR $CATALINA_HOME/native-jni-lib
|
|
||||||
ENV LD_LIBRARY_PATH ${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$TOMCAT_NATIVE_LIBDIR
|
|
||||||
|
|
||||||
# see https://www.apache.org/dist/tomcat/tomcat-8/KEYS
|
|
||||||
# see also "versions.sh" (https://github.com/docker-library/tomcat/blob/master/versions.sh)
|
|
||||||
ENV GPG_KEYS 05AB33110949707C93A279E3D3EFE6B686867BA6 07E48665A34DCAFAE522E5E6266191C37C037D42 47309207D818FFD8DCD3F83F1931D684307A10A5 541FBE7D8F78B25E055DDEE13C370389288584E7 5C3C5F3E314C866292F359A8F3AD5C94A67F707E 765908099ACF92702C7D949BFA0C35EA8AA299F1 79F7026C690BAA50B92CD8B66A3AD3F4F22C4FED 9BA44C2621385CB966EBA586F72C284D731FABEE A27677289986DB50844682F8ACB77FC2E86E29AC A9C5DF4D22E99998D9875A5110C01C5A2F6059E7 DCFD35E0BF8CA7344752DE8B6FB21E8933C60243 F3A04C595DB5B6A5F1ECA43E3B7BBB100D811BBE F7DA48BB64BCB84ECBA7EE6935CD23C10D498E23
|
|
||||||
|
|
||||||
ENV TOMCAT_MAJOR 8
|
|
||||||
ENV TOMCAT_VERSION 8.5.100
|
|
||||||
ENV TOMCAT_SHA512 14d8dca911fe9c5b7e636e054ac2e70a532ddc358eda83ed3679e51df8baa7a397cabb8a5777b815014d46064cbc33e8d9ea75b9426dccdae54fb3913d9a54f0
|
|
||||||
|
|
||||||
COPY --from=tomcat:8.5.100-jdk8-temurin-jammy $CATALINA_HOME $CATALINA_HOME
|
|
||||||
RUN set -eux; \
|
|
||||||
apt-get update; \
|
|
||||||
xargs -rt apt-get install -y --no-install-recommends < "$TOMCAT_NATIVE_LIBDIR/.dependencies.txt"; \
|
|
||||||
rm -rf /var/lib/apt/lists/*
|
|
||||||
|
|
||||||
# verify Tomcat Native is working properly
|
|
||||||
RUN 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
|
|
||||||
|
|
||||||
EXPOSE 8080
|
|
||||||
|
|
||||||
# upstream eclipse-temurin-provided entrypoint script caused https://github.com/docker-library/tomcat/issues/77 to come back as https://github.com/docker-library/tomcat/issues/302; use "/entrypoint.sh" at your own risk
|
|
||||||
ENTRYPOINT []
|
|
||||||
|
|
||||||
CMD ["catalina.sh", "run"]
|
|
||||||
|
|
@ -43,36 +43,6 @@ ENV GPG_KEYS {{
|
||||||
# trailing comma 👀
|
# trailing comma 👀
|
||||||
empty
|
empty
|
||||||
],
|
],
|
||||||
"8": [
|
|
||||||
# Andy Armstrong <andy@tagish.com>
|
|
||||||
"79F7026C690BAA50B92CD8B66A3AD3F4F22C4FED",
|
|
||||||
# Jean-Frederic Clere (jfclere) <JFrederic.Clere@fujitsu-siemens.com>
|
|
||||||
"05AB33110949707C93A279E3D3EFE6B686867BA6",
|
|
||||||
# kevin seguin <seguin@apache.org>
|
|
||||||
"A27677289986DB50844682F8ACB77FC2E86E29AC",
|
|
||||||
# Henri Gomez <hgomez@users.sourceforge.net>
|
|
||||||
"47309207D818FFD8DCD3F83F1931D684307A10A5",
|
|
||||||
# Yoav Shapira <yoavs@apache.org>
|
|
||||||
"07E48665A34DCAFAE522E5E6266191C37C037D42",
|
|
||||||
# Mark E D Thomas <markt@apache.org>
|
|
||||||
"DCFD35E0BF8CA7344752DE8B6FB21E8933C60243",
|
|
||||||
# Mark E D Thomas <markt@apache.org>
|
|
||||||
"A9C5DF4D22E99998D9875A5110C01C5A2F6059E7",
|
|
||||||
# Rémy Maucherat <remm@apache.org>
|
|
||||||
"541FBE7D8F78B25E055DDEE13C370389288584E7",
|
|
||||||
# Yoav Shapira <yoavs@computer.org>
|
|
||||||
"F3A04C595DB5B6A5F1ECA43E3B7BBB100D811BBE",
|
|
||||||
# Tim Whittington (CODE SIGNING KEY) <timw@apache.org>
|
|
||||||
"9BA44C2621385CB966EBA586F72C284D731FABEE",
|
|
||||||
# Mladen Turk (Default signing key) <mturk@apache.org>
|
|
||||||
"F7DA48BB64BCB84ECBA7EE6935CD23C10D498E23",
|
|
||||||
# Konstantin Kolinko (CODE SIGNING KEY) <kkolinko@apache.org>
|
|
||||||
"765908099ACF92702C7D949BFA0C35EA8AA299F1",
|
|
||||||
# Christopher Schultz <chris@christopherschultz.net>
|
|
||||||
"5C3C5F3E314C866292F359A8F3AD5C94A67F707E",
|
|
||||||
# trailing comma 👀
|
|
||||||
empty
|
|
||||||
],
|
|
||||||
} | .[major] // error("missing GPG keys")
|
} | .[major] // error("missing GPG keys")
|
||||||
| sort
|
| sort
|
||||||
| join(" ")
|
| join(" ")
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@
|
||||||
set -eu
|
set -eu
|
||||||
|
|
||||||
declare -A aliases=(
|
declare -A aliases=(
|
||||||
[8.5]='8'
|
|
||||||
[9.0]='9'
|
[9.0]='9'
|
||||||
[10.1]='10 latest'
|
[10.1]='10 latest'
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -12,10 +12,8 @@ def is_supported_java_version(java):
|
||||||
java >= 21
|
java >= 21
|
||||||
elif $version >= 10.1 then
|
elif $version >= 10.1 then
|
||||||
java >= 11
|
java >= 11
|
||||||
elif $version >= 9.0 then
|
else # $version >= 9.0
|
||||||
java >= 8
|
java >= 8
|
||||||
else
|
|
||||||
java >= 7
|
|
||||||
end
|
end
|
||||||
;
|
;
|
||||||
def is_apt:
|
def is_apt:
|
||||||
|
|
|
||||||
|
|
@ -19,30 +19,6 @@
|
||||||
],
|
],
|
||||||
"version": "11.0.0-M18"
|
"version": "11.0.0-M18"
|
||||||
},
|
},
|
||||||
"8.5": {
|
|
||||||
"sha512": "14d8dca911fe9c5b7e636e054ac2e70a532ddc358eda83ed3679e51df8baa7a397cabb8a5777b815014d46064cbc33e8d9ea75b9426dccdae54fb3913d9a54f0",
|
|
||||||
"variants": [
|
|
||||||
"jdk21/temurin-jammy",
|
|
||||||
"jre21/temurin-jammy",
|
|
||||||
"jdk21/corretto-al2",
|
|
||||||
"jdk17/temurin-jammy",
|
|
||||||
"jre17/temurin-jammy",
|
|
||||||
"jdk17/temurin-focal",
|
|
||||||
"jre17/temurin-focal",
|
|
||||||
"jdk17/corretto-al2",
|
|
||||||
"jdk11/temurin-jammy",
|
|
||||||
"jre11/temurin-jammy",
|
|
||||||
"jdk11/temurin-focal",
|
|
||||||
"jre11/temurin-focal",
|
|
||||||
"jdk11/corretto-al2",
|
|
||||||
"jdk8/temurin-jammy",
|
|
||||||
"jre8/temurin-jammy",
|
|
||||||
"jdk8/temurin-focal",
|
|
||||||
"jre8/temurin-focal",
|
|
||||||
"jdk8/corretto-al2"
|
|
||||||
],
|
|
||||||
"version": "8.5.100"
|
|
||||||
},
|
|
||||||
"9.0": {
|
"9.0": {
|
||||||
"sha512": "71a64fe805aab89ef4798571d860a3c9a4f751f808921559a9249305abb205836de33ab89bb33b625a77f799f193d6bffbe94aadf293866df756d708f5bfb933",
|
"sha512": "71a64fe805aab89ef4798571d860a3c9a4f751f808921559a9249305abb205836de33ab89bb33b625a77f799f193d6bffbe94aadf293866df756d708f5bfb933",
|
||||||
"variants": [
|
"variants": [
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue