Update supported Java versions for 11.0+
See https://tomcat.apache.org/whichversion.html -- now only Java 17+
This commit is contained in:
parent
b12e85ab08
commit
37a76b71e3
|
|
@ -1,149 +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-11/KEYS
|
||||
# see also "versions.sh" (https://github.com/docker-library/tomcat/blob/master/versions.sh)
|
||||
ENV GPG_KEYS A9C5DF4D22E99998D9875A5110C01C5A2F6059E7
|
||||
|
||||
ENV TOMCAT_MAJOR 11
|
||||
ENV TOMCAT_VERSION 11.0.0-M1
|
||||
ENV TOMCAT_SHA512 c2d02f2ac1b11122293af7d5ef3cf4dbc1932f19806ba89ea0cd36efcca7701304eef2f3cc03a496fd3a107080a582d3ca3faee207f0bce8b98c266f0a73edc7
|
||||
|
||||
RUN set -eux; \
|
||||
\
|
||||
savedAptMark="$(apt-mark showmanual)"; \
|
||||
apt-get update; \
|
||||
apt-get install -y --no-install-recommends \
|
||||
ca-certificates \
|
||||
curl \
|
||||
dirmngr \
|
||||
gnupg \
|
||||
; \
|
||||
\
|
||||
ddist() { \
|
||||
local f="$1"; shift; \
|
||||
local distFile="$1"; shift; \
|
||||
local mvnFile="${1:-}"; \
|
||||
local success=; \
|
||||
local distUrl=; \
|
||||
for distUrl in \
|
||||
# https://issues.apache.org/jira/browse/INFRA-8753?focusedCommentId=14735394#comment-14735394
|
||||
"https://www.apache.org/dyn/closer.cgi?action=download&filename=$distFile" \
|
||||
# if the version is outdated (or we're grabbing the .asc file), we might have to pull from the dist/archive :/
|
||||
"https://downloads.apache.org/$distFile" \
|
||||
"https://www-us.apache.org/dist/$distFile" \
|
||||
"https://www.apache.org/dist/$distFile" \
|
||||
"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*; \
|
||||
command -v gpgconf && 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" \
|
||||
; \
|
||||
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 777 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,43 +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-11/KEYS
|
||||
# see also "versions.sh" (https://github.com/docker-library/tomcat/blob/master/versions.sh)
|
||||
ENV GPG_KEYS A9C5DF4D22E99998D9875A5110C01C5A2F6059E7
|
||||
|
||||
ENV TOMCAT_MAJOR 11
|
||||
ENV TOMCAT_VERSION 11.0.0-M1
|
||||
ENV TOMCAT_SHA512 c2d02f2ac1b11122293af7d5ef3cf4dbc1932f19806ba89ea0cd36efcca7701304eef2f3cc03a496fd3a107080a582d3ca3faee207f0bce8b98c266f0a73edc7
|
||||
|
||||
COPY --from=tomcat:11.0.0-M1-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
|
||||
CMD ["catalina.sh", "run"]
|
||||
|
|
@ -8,7 +8,9 @@ def major:
|
|||
def is_supported_java_version(java):
|
||||
# http://tomcat.apache.org/whichversion.html ("Supported Java Versions")
|
||||
(env.version | tonumber) as $version
|
||||
| if $version >= 10.1 then
|
||||
| if $version >= 11.0 then
|
||||
java >= 17
|
||||
elif $version >= 10.1 then
|
||||
java >= 11
|
||||
elif $version >= 9.0 then
|
||||
java >= 8
|
||||
|
|
|
|||
|
|
@ -13,9 +13,7 @@
|
|||
"sha512": "c2d02f2ac1b11122293af7d5ef3cf4dbc1932f19806ba89ea0cd36efcca7701304eef2f3cc03a496fd3a107080a582d3ca3faee207f0bce8b98c266f0a73edc7",
|
||||
"variants": [
|
||||
"jdk17/temurin-jammy",
|
||||
"jre17/temurin-jammy",
|
||||
"jdk11/temurin-jammy",
|
||||
"jre11/temurin-jammy"
|
||||
"jre17/temurin-jammy"
|
||||
],
|
||||
"version": "11.0.0-M1"
|
||||
},
|
||||
|
|
|
|||
Loading…
Reference in New Issue