-
Notifications
You must be signed in to change notification settings - Fork 18
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Issue #110 - add jre variants for eclipse-temurin images
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
- Loading branch information
1 parent
3d9aa0d
commit db017bd
Showing
21 changed files
with
1,533 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,97 @@ | ||
# DO NOT EDIT. Edit baseDockerfile-slim and use update.sh | ||
FROM eclipse-temurin:jre11 | ||
|
||
ENV JETTY_VERSION 10.0.11 | ||
ENV JETTY_HOME /usr/local/jetty | ||
ENV JETTY_BASE /var/lib/jetty | ||
ENV TMPDIR /tmp/jetty | ||
ENV PATH $JETTY_HOME/bin:$PATH | ||
ENV JETTY_TGZ_URL https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-home/$JETTY_VERSION/jetty-home-$JETTY_VERSION.tar.gz | ||
|
||
# GPG Keys are personal keys of Jetty committers (see https://github.com/eclipse/jetty.project/blob/0607c0e66e44b9c12a62b85551da3a0edce0281e/KEYS.txt) | ||
ENV JETTY_GPG_KEYS \ | ||
# Jan Bartel <janb@mortbay.com> | ||
AED5EE6C45D0FE8D5D1B164F27DED4BF6216DB8F \ | ||
# Jesse McConnell <jesse.mcconnell@gmail.com> | ||
2A684B57436A81FA8706B53C61C3351A438A3B7D \ | ||
# Joakim Erdfelt <joakim.erdfelt@gmail.com> | ||
5989BAF76217B843D66BE55B2D0E1FB8FE4B68B4 \ | ||
# Joakim Erdfelt <joakim@apache.org> | ||
B59B67FD7904984367F931800818D9D68FB67BAC \ | ||
# Joakim Erdfelt <joakim@erdfelt.com> | ||
BFBB21C246D7776836287A48A04E0C74ABB35FEA \ | ||
# Simone Bordet <simone.bordet@gmail.com> | ||
8B096546B1A8F02656B15D3B1677D141BCF3584D \ | ||
# Greg Wilkins <gregw@webtide.com> | ||
FBA2B18D238AB852DF95745C76157BDF03D0DCD6 \ | ||
# Greg Wilkins <gregw@webtide.com> | ||
5C9579B3DB2E506429319AAEF33B071B29559E1E \ | ||
# Olivier Lamy <olamy@apache.org> | ||
F254B35617DC255D9344BCFA873A8E86B4372146 | ||
|
||
RUN set -xe ; \ | ||
# Save initial installation state | ||
export savedAptMark="$(apt-mark showmanual)" ; \ | ||
# | ||
mkdir -p $TMPDIR ; \ | ||
# | ||
# Install utils needed to verify keys | ||
apt-get update ; \ | ||
apt-get install -y --no-install-recommends \ | ||
ca-certificates \ | ||
p11-kit \ | ||
gnupg \ | ||
curl \ | ||
; \ | ||
# | ||
# fetch GPG keys | ||
export GNUPGHOME=/jetty-keys ; \ | ||
mkdir -p "$GNUPGHOME" ; \ | ||
for key in $JETTY_GPG_KEYS; do \ | ||
gpg --batch --keyserver "hkps://keyserver.ubuntu.com" --recv-keys "$key"; \ | ||
done ; \ | ||
# | ||
# Fetch jetty release into JETTY_HOME | ||
mkdir -p "$JETTY_HOME" ; \ | ||
cd $JETTY_HOME ; \ | ||
curl -SL "$JETTY_TGZ_URL" -o jetty.tar.gz ; \ | ||
curl -SL "$JETTY_TGZ_URL.asc" -o jetty.tar.gz.asc ; \ | ||
# | ||
# Verify GPG signatures | ||
gpg --batch --verify jetty.tar.gz.asc jetty.tar.gz ; \ | ||
# | ||
# Unpack jetty | ||
tar -xvf jetty.tar.gz --strip-components=1 ; \ | ||
sed -i '/jetty-logging/d' etc/jetty.conf ; \ | ||
# | ||
# Create and configure the JETTY_HOME directory | ||
mkdir -p "$JETTY_BASE" ; \ | ||
cd $JETTY_BASE ; \ | ||
java -jar "$JETTY_HOME/start.jar" --create-startd \ | ||
--add-to-start="server,http,deploy,jsp,jstl,ext,resources,websocket" ; \ | ||
groupadd -r jetty && useradd -r -g jetty jetty ; \ | ||
chown -R jetty:jetty "$JETTY_HOME" "$JETTY_BASE" "$TMPDIR" ; \ | ||
usermod -d $JETTY_BASE jetty ; \ | ||
# | ||
# Cleanup any apt | ||
apt-mark auto '.*' > /dev/null ; \ | ||
[ -z "$savedAptMark" ] || apt-mark manual $savedAptMark > /dev/null ; \ | ||
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false ; \ | ||
rm -rf /var/lib/apt/lists/* ; \ | ||
# | ||
# Cleanup | ||
rm -rf /tmp/hsperfdata_root ; \ | ||
rm -fr $JETTY_HOME/jetty.tar.gz* ; \ | ||
rm -fr /jetty-keys $GNUPGHOME ; \ | ||
rm -rf /tmp/hsperfdata_root ; \ | ||
# | ||
# Basic smoke test | ||
java -jar "$JETTY_HOME/start.jar" --list-config ; | ||
|
||
WORKDIR $JETTY_BASE | ||
COPY docker-entrypoint.sh generate-jetty-start.sh / | ||
|
||
USER jetty | ||
EXPOSE 8080 | ||
ENTRYPOINT ["/docker-entrypoint.sh"] | ||
CMD ["java","-jar","/usr/local/jetty/start.jar"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,104 @@ | ||
#!/bin/sh | ||
|
||
set -e | ||
|
||
if [ "$1" = jetty.sh ]; then | ||
if ! command -v bash >/dev/null 2>&1 ; then | ||
cat >&2 <<- 'EOWARN' | ||
******************************************************************** | ||
ERROR: bash not found. Use of jetty.sh requires bash. | ||
******************************************************************** | ||
EOWARN | ||
exit 1 | ||
fi | ||
cat >&2 <<- 'EOWARN' | ||
******************************************************************** | ||
WARNING: Use of jetty.sh from this image is deprecated and may | ||
be removed at some point in the future. | ||
See the documentation for guidance on extending this image: | ||
https://github.com/docker-library/docs/tree/master/jetty | ||
******************************************************************** | ||
EOWARN | ||
fi | ||
|
||
if ! command -v -- "$1" >/dev/null 2>&1 ; then | ||
set -- java -jar "$JETTY_HOME/start.jar" "$@" | ||
fi | ||
|
||
: ${TMPDIR:=/tmp/jetty} | ||
[ -d "$TMPDIR" ] || mkdir -p $TMPDIR 2>/dev/null | ||
|
||
: ${JETTY_START:=$JETTY_BASE/jetty.start} | ||
|
||
case "$JAVA_OPTIONS" in | ||
*-Djava.io.tmpdir=*) ;; | ||
*) JAVA_OPTIONS="-Djava.io.tmpdir=$TMPDIR $JAVA_OPTIONS" ;; | ||
esac | ||
|
||
if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then | ||
# this is a command to run jetty | ||
|
||
# check if it is a terminating command | ||
for A in "$@" ; do | ||
case $A in | ||
--add-to-start* |\ | ||
--create-files |\ | ||
--create-startd |\ | ||
--download |\ | ||
--dry-run |\ | ||
--exec-print |\ | ||
--help |\ | ||
--info |\ | ||
--list-all-modules |\ | ||
--list-classpath |\ | ||
--list-config |\ | ||
--list-modules* |\ | ||
--stop |\ | ||
--update-ini |\ | ||
--version |\ | ||
-v )\ | ||
# It is a terminating command, so exec directly | ||
JAVA="$1" | ||
shift | ||
exec $JAVA $JAVA_OPTIONS "$@" | ||
esac | ||
done | ||
|
||
if [ $(whoami) != "jetty" ]; then | ||
cat >&2 <<- EOWARN | ||
******************************************************************** | ||
WARNING: User is $(whoami) | ||
The user should be (re)set to 'jetty' in the Dockerfile | ||
******************************************************************** | ||
EOWARN | ||
fi | ||
|
||
if [ -f $JETTY_START ] ; then | ||
if [ $JETTY_BASE/start.d -nt $JETTY_START ] ; then | ||
cat >&2 <<- EOWARN | ||
******************************************************************** | ||
WARNING: The $JETTY_BASE/start.d directory has been modified since | ||
the $JETTY_START files was generated. | ||
To avoid regeneration delays at start, either delete | ||
the $JETTY_START file or re-run /generate-jetty-start.sh | ||
from a Dockerfile. | ||
******************************************************************** | ||
EOWARN | ||
/generate-jetty-start.sh "$@" | ||
fi | ||
echo $(date +'%Y-%m-%d %H:%M:%S.000'):INFO:docker-entrypoint:jetty start from $JETTY_START | ||
set -- $(cat $JETTY_START) | ||
else | ||
/generate-jetty-start.sh "$@" | ||
set -- $(cat $JETTY_START) | ||
fi | ||
fi | ||
|
||
if [ "${1##*/}" = java -a -n "$JAVA_OPTIONS" ] ; then | ||
JAVA="$1" | ||
shift | ||
set -- "$JAVA" $JAVA_OPTIONS "$@" | ||
fi | ||
|
||
exec "$@" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
#!/bin/sh | ||
|
||
if [ -z "$JETTY_START" ] ; then | ||
JETTY_START=$JETTY_BASE/jetty.start | ||
fi | ||
rm -f $JETTY_START | ||
DRY_RUN=$(/docker-entrypoint.sh "$@" --dry-run) | ||
echo "$DRY_RUN" \ | ||
| egrep '[^ ]*java .* org\.eclipse\.jetty\.xml\.XmlConfiguration ' \ | ||
| sed -e 's/ -Djava.io.tmpdir=[^ ]*//g' -e 's/\\$//' \ | ||
> $JETTY_START | ||
|
||
# If jetty.start doesn't have content then the dry-run failed. | ||
if ! [ -s $JETTY_START ]; then | ||
echo "jetty dry run failed:" | ||
echo "$DRY_RUN" | awk '/\\$/ { printf "%s", substr($0, 1, length($0)-1); next } 1' | ||
exit 1 | ||
fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,97 @@ | ||
# DO NOT EDIT. Edit baseDockerfile-slim and use update.sh | ||
FROM eclipse-temurin:jre17 | ||
|
||
ENV JETTY_VERSION 10.0.11 | ||
ENV JETTY_HOME /usr/local/jetty | ||
ENV JETTY_BASE /var/lib/jetty | ||
ENV TMPDIR /tmp/jetty | ||
ENV PATH $JETTY_HOME/bin:$PATH | ||
ENV JETTY_TGZ_URL https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-home/$JETTY_VERSION/jetty-home-$JETTY_VERSION.tar.gz | ||
|
||
# GPG Keys are personal keys of Jetty committers (see https://github.com/eclipse/jetty.project/blob/0607c0e66e44b9c12a62b85551da3a0edce0281e/KEYS.txt) | ||
ENV JETTY_GPG_KEYS \ | ||
# Jan Bartel <janb@mortbay.com> | ||
AED5EE6C45D0FE8D5D1B164F27DED4BF6216DB8F \ | ||
# Jesse McConnell <jesse.mcconnell@gmail.com> | ||
2A684B57436A81FA8706B53C61C3351A438A3B7D \ | ||
# Joakim Erdfelt <joakim.erdfelt@gmail.com> | ||
5989BAF76217B843D66BE55B2D0E1FB8FE4B68B4 \ | ||
# Joakim Erdfelt <joakim@apache.org> | ||
B59B67FD7904984367F931800818D9D68FB67BAC \ | ||
# Joakim Erdfelt <joakim@erdfelt.com> | ||
BFBB21C246D7776836287A48A04E0C74ABB35FEA \ | ||
# Simone Bordet <simone.bordet@gmail.com> | ||
8B096546B1A8F02656B15D3B1677D141BCF3584D \ | ||
# Greg Wilkins <gregw@webtide.com> | ||
FBA2B18D238AB852DF95745C76157BDF03D0DCD6 \ | ||
# Greg Wilkins <gregw@webtide.com> | ||
5C9579B3DB2E506429319AAEF33B071B29559E1E \ | ||
# Olivier Lamy <olamy@apache.org> | ||
F254B35617DC255D9344BCFA873A8E86B4372146 | ||
|
||
RUN set -xe ; \ | ||
# Save initial installation state | ||
export savedAptMark="$(apt-mark showmanual)" ; \ | ||
# | ||
mkdir -p $TMPDIR ; \ | ||
# | ||
# Install utils needed to verify keys | ||
apt-get update ; \ | ||
apt-get install -y --no-install-recommends \ | ||
ca-certificates \ | ||
p11-kit \ | ||
gnupg \ | ||
curl \ | ||
; \ | ||
# | ||
# fetch GPG keys | ||
export GNUPGHOME=/jetty-keys ; \ | ||
mkdir -p "$GNUPGHOME" ; \ | ||
for key in $JETTY_GPG_KEYS; do \ | ||
gpg --batch --keyserver "hkps://keyserver.ubuntu.com" --recv-keys "$key"; \ | ||
done ; \ | ||
# | ||
# Fetch jetty release into JETTY_HOME | ||
mkdir -p "$JETTY_HOME" ; \ | ||
cd $JETTY_HOME ; \ | ||
curl -SL "$JETTY_TGZ_URL" -o jetty.tar.gz ; \ | ||
curl -SL "$JETTY_TGZ_URL.asc" -o jetty.tar.gz.asc ; \ | ||
# | ||
# Verify GPG signatures | ||
gpg --batch --verify jetty.tar.gz.asc jetty.tar.gz ; \ | ||
# | ||
# Unpack jetty | ||
tar -xvf jetty.tar.gz --strip-components=1 ; \ | ||
sed -i '/jetty-logging/d' etc/jetty.conf ; \ | ||
# | ||
# Create and configure the JETTY_HOME directory | ||
mkdir -p "$JETTY_BASE" ; \ | ||
cd $JETTY_BASE ; \ | ||
java -jar "$JETTY_HOME/start.jar" --create-startd \ | ||
--add-to-start="server,http,deploy,jsp,jstl,ext,resources,websocket" ; \ | ||
groupadd -r jetty && useradd -r -g jetty jetty ; \ | ||
chown -R jetty:jetty "$JETTY_HOME" "$JETTY_BASE" "$TMPDIR" ; \ | ||
usermod -d $JETTY_BASE jetty ; \ | ||
# | ||
# Cleanup any apt | ||
apt-mark auto '.*' > /dev/null ; \ | ||
[ -z "$savedAptMark" ] || apt-mark manual $savedAptMark > /dev/null ; \ | ||
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false ; \ | ||
rm -rf /var/lib/apt/lists/* ; \ | ||
# | ||
# Cleanup | ||
rm -rf /tmp/hsperfdata_root ; \ | ||
rm -fr $JETTY_HOME/jetty.tar.gz* ; \ | ||
rm -fr /jetty-keys $GNUPGHOME ; \ | ||
rm -rf /tmp/hsperfdata_root ; \ | ||
# | ||
# Basic smoke test | ||
java -jar "$JETTY_HOME/start.jar" --list-config ; | ||
|
||
WORKDIR $JETTY_BASE | ||
COPY docker-entrypoint.sh generate-jetty-start.sh / | ||
|
||
USER jetty | ||
EXPOSE 8080 | ||
ENTRYPOINT ["/docker-entrypoint.sh"] | ||
CMD ["java","-jar","/usr/local/jetty/start.jar"] |
Oops, something went wrong.