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 👀
|
||||
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")
|
||||
| sort
|
||||
| join(" ")
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@
|
|||
set -eu
|
||||
|
||||
declare -A aliases=(
|
||||
[8.5]='8'
|
||||
[9.0]='9'
|
||||
[10.1]='10 latest'
|
||||
)
|
||||
|
|
|
|||
|
|
@ -12,10 +12,8 @@ def is_supported_java_version(java):
|
|||
java >= 21
|
||||
elif $version >= 10.1 then
|
||||
java >= 11
|
||||
elif $version >= 9.0 then
|
||||
else # $version >= 9.0
|
||||
java >= 8
|
||||
else
|
||||
java >= 7
|
||||
end
|
||||
;
|
||||
def is_apt:
|
||||
|
|
|
|||
|
|
@ -19,30 +19,6 @@
|
|||
],
|
||||
"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": {
|
||||
"sha512": "71a64fe805aab89ef4798571d860a3c9a4f751f808921559a9249305abb205836de33ab89bb33b625a77f799f193d6bffbe94aadf293866df756d708f5bfb933",
|
||||
"variants": [
|
||||
|
|
|
|||
Loading…
Reference in New Issue