-
Notifications
You must be signed in to change notification settings - Fork 2.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update jetty to include jdk13 and slim images #7134
Update jetty to include jdk13 and slim images #7134
Conversation
Signed-off-by: Greg Wilkins <gregw@webtide.com>
Diff:diff --git a/_bashbrew-arches b/_bashbrew-arches
index 6e812ba..1ccbd81 100644
--- a/_bashbrew-arches
+++ b/_bashbrew-arches
@@ -1,44 +1,11 @@
+jetty:9-jdk13-slim @ amd64
+jetty:9-jdk13-slim @ arm64v8
+jetty:9-jre8 @ amd64
jetty:9-jre11 @ amd64
-jetty:9-jre11 @ arm32v5
-jetty:9-jre11 @ arm32v7
jetty:9-jre11 @ arm64v8
-jetty:9-jre11 @ i386
-jetty:9-jre11 @ ppc64le
-jetty:9-jre11 @ s390x
+jetty:9-jre11-slim @ amd64
+jetty:9-jre11-slim @ arm64v8
jetty:9.2-jre8 @ amd64
-jetty:9.2-jre8 @ arm32v5
-jetty:9.2-jre8 @ arm32v7
-jetty:9.2-jre8 @ arm64v8
-jetty:9.2-jre8 @ i386
-jetty:9.2-jre8 @ ppc64le
-jetty:9.2-jre8 @ s390x
jetty:9.3-jre8 @ amd64
-jetty:9.3-jre8 @ arm32v5
-jetty:9.3-jre8 @ arm32v7
-jetty:9.3-jre8 @ arm64v8
-jetty:9.3-jre8 @ i386
-jetty:9.3-jre8 @ ppc64le
-jetty:9.3-jre8 @ s390x
-jetty:9.3-jre8-alpine @ amd64
-jetty:9.3-jre8-alpine @ arm32v6
-jetty:9.3-jre8-alpine @ arm64v8
-jetty:9.3-jre8-alpine @ i386
-jetty:9.3-jre8-alpine @ ppc64le
-jetty:9.3-jre8-alpine @ s390x
-jetty:jre7 @ amd64
-jetty:jre7 @ arm32v5
-jetty:jre7 @ arm32v7
-jetty:jre7 @ i386
-jetty:jre8 @ amd64
-jetty:jre8 @ arm32v5
-jetty:jre8 @ arm32v7
-jetty:jre8 @ arm64v8
-jetty:jre8 @ i386
-jetty:jre8 @ ppc64le
-jetty:jre8 @ s390x
-jetty:jre8-alpine @ amd64
-jetty:jre8-alpine @ arm32v6
-jetty:jre8-alpine @ arm64v8
-jetty:jre8-alpine @ i386
-jetty:jre8-alpine @ ppc64le
-jetty:jre8-alpine @ s390x
+jetty:jdk13 @ amd64
+jetty:jdk13 @ arm64v8
diff --git a/_bashbrew-list b/_bashbrew-list
index 6e2cb87..53dab6a 100644
--- a/_bashbrew-list
+++ b/_bashbrew-list
@@ -1,35 +1,24 @@
jetty:9
-jetty:9-alpine
-jetty:9-jre7
+jetty:9-jdk13
+jetty:9-jdk13-slim
jetty:9-jre8
-jetty:9-jre8-alpine
jetty:9-jre11
-jetty:9.2
-jetty:9.2-jre7
+jetty:9-jre11-slim
jetty:9.2-jre8
-jetty:9.2.28
-jetty:9.2.28-jre7
-jetty:9.2.28-jre8
-jetty:9.3
-jetty:9.3-alpine
+jetty:9.2.29-jre8
jetty:9.3-jre8
-jetty:9.3-jre8-alpine
-jetty:9.3.27
-jetty:9.3.27-alpine
-jetty:9.3.27-jre8
-jetty:9.3.27-jre8-alpine
+jetty:9.3.28-jre8
jetty:9.4
-jetty:9.4-alpine
+jetty:9.4-jdk13
+jetty:9.4-jdk13-slim
jetty:9.4-jre8
-jetty:9.4-jre8-alpine
jetty:9.4-jre11
-jetty:9.4.18
-jetty:9.4.18-alpine
-jetty:9.4.18-jre8
-jetty:9.4.18-jre8-alpine
-jetty:9.4.18-jre11
-jetty:alpine
-jetty:jre7
-jetty:jre8
-jetty:jre8-alpine
+jetty:9.4-jre11-slim
+jetty:9.4.24
+jetty:9.4.24-jdk13
+jetty:9.4.24-jdk13-slim
+jetty:9.4.24-jre8
+jetty:9.4.24-jre11
+jetty:9.4.24-jre11-slim
+jetty:jdk13
jetty:latest
diff --git a/jetty_jre8/Dockerfile b/jetty_9-jdk13-slim/Dockerfile
similarity index 59%
copy from jetty_jre8/Dockerfile
copy to jetty_9-jdk13-slim/Dockerfile
index c356c98..eae902a 100644
--- a/jetty_jre8/Dockerfile
+++ b/jetty_9-jdk13-slim/Dockerfile
@@ -1,14 +1,11 @@
-FROM openjdk:8-jre
-
-# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added
-RUN groupadd -r jetty && useradd -r -g jetty jetty
+# DO NOT EDIT. Edit Dockerfile-9.4 and use update.sh
+FROM openjdk:13-jdk AS Jetty94
+ENV JETTY_VERSION 9.4.24.v20191120
ENV JETTY_HOME /usr/local/jetty
+ENV JETTY_BASE /var/lib/jetty
+ENV TMPDIR /tmp/jetty
ENV PATH $JETTY_HOME/bin:$PATH
-RUN mkdir -p "$JETTY_HOME"
-WORKDIR $JETTY_HOME
-
-ENV JETTY_VERSION 9.4.18.v20190429
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)
@@ -31,33 +28,51 @@ ENV JETTY_GPG_KEYS \
5C9579B3DB2E506429319AAEF33B071B29559E1E
RUN set -xe \
+ && mkdir /jetty-keys \
+ && export GNUPGHOME=/jetty-keys; \
+ for key in $JETTY_GPG_KEYS; do \
+ for server in \
+ ha.pool.sks-keyservers.net \
+ p80.pool.sks-keyservers.net:80 \
+ ipv4.pool.sks-keyservers.net \
+ pgp.mit.edu ; \
+ do \
+ if gpg --batch --keyserver "$server" --recv-keys "$key"; then \
+ break; \
+ fi; \
+ done; \
+ done \
+ && 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 \
- && export GNUPGHOME="$(mktemp -d)" \
- && for key in $JETTY_GPG_KEYS; do \
- gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; done \
&& gpg --batch --verify jetty.tar.gz.asc jetty.tar.gz \
- && gpgconf --kill all \
- && rm -rf "$GNUPGHOME" \
&& tar -xvf jetty.tar.gz --strip-components=1 \
&& sed -i '/jetty-logging/d' etc/jetty.conf \
- && rm jetty.tar.gz* \
+ && rm -fr jetty.tar.gz* \
+ && 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" \
&& rm -rf /tmp/hsperfdata_root
+# Start a new image on the target and import jetty
+FROM openjdk:13-jdk-slim
+
+ENV JETTY_HOME /usr/local/jetty
ENV JETTY_BASE /var/lib/jetty
-RUN mkdir -p "$JETTY_BASE"
-WORKDIR $JETTY_BASE
+ENV TMPDIR /tmp/jetty
+ENV PATH $JETTY_HOME/bin:$PATH
-RUN set -xe \
- && java -jar "$JETTY_HOME/start.jar" --create-startd --add-to-start="server,http,deploy,jsp,jstl,ext,resources,websocket" \
- && chown -R jetty:jetty "$JETTY_BASE" \
- && rm -rf /tmp/hsperfdata_root
+COPY --from=Jetty94 $JETTY_HOME $JETTY_HOME
+COPY --from=Jetty94 $JETTY_BASE $JETTY_BASE
-ENV TMPDIR /tmp/jetty
RUN set -xe \
&& mkdir -p "$TMPDIR" \
- && chown -R jetty:jetty "$TMPDIR"
+ && groupadd -r jetty && useradd -r -g jetty jetty \
+ && chown -R jetty:jetty "$JETTY_HOME" "$JETTY_BASE" "$TMPDIR" \
+ && rm -rf /tmp/hsperfdata_root
+WORKDIR $JETTY_BASE
COPY docker-entrypoint.sh generate-jetty-start.sh /
USER jetty
diff --git a/jetty_9.3-jre8-alpine/docker-entrypoint.sh b/jetty_9-jdk13-slim/docker-entrypoint.sh
similarity index 92%
rename from jetty_9.3-jre8-alpine/docker-entrypoint.sh
rename to jetty_9-jdk13-slim/docker-entrypoint.sh
index cd8f821..41ccbe4 100755
--- a/jetty_9.3-jre8-alpine/docker-entrypoint.sh
+++ b/jetty_9-jdk13-slim/docker-entrypoint.sh
@@ -59,7 +59,9 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
--version |\
-v )\
# It is a terminating command, so exec directly
- exec "$@"
+ JAVA="$1"
+ shift
+ exec $JAVA $JAVA_OPTIONS "$@"
esac
done
@@ -88,7 +90,9 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
set -- $(cat $JETTY_START)
else
# Do a jetty dry run to set the final command
- "$@" --dry-run > $JETTY_START
+ JAVA="$1"
+ shift
+ $JAVA $JAVA_OPTIONS "$@" --dry-run > $JETTY_START
if [ $(egrep -v '\\$' $JETTY_START | wc -l ) -gt 1 ] ; then
# command was more than a dry-run
cat $JETTY_START \
@@ -96,14 +100,14 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
| egrep -v '[^ ]*java .* org\.eclipse\.jetty\.xml\.XmlConfiguration '
exit
fi
- set -- $(sed 's/\\$//' $JETTY_START)
+ set -- $(sed -e 's/ -Djava.io.tmpdir=[^ ]*//g' -e 's/\\$//' $JETTY_START)
fi
fi
if [ "${1##*/}" = java -a -n "$JAVA_OPTIONS" ] ; then
- java="$1"
+ JAVA="$1"
shift
- set -- "$java" $JAVA_OPTIONS "$@"
+ set -- "$JAVA" $JAVA_OPTIONS "$@"
fi
exec "$@"
diff --git a/jetty_9.3-jre8-alpine/generate-jetty-start.sh b/jetty_9-jdk13-slim/generate-jetty-start.sh
similarity index 50%
rename from jetty_9.3-jre8-alpine/generate-jetty-start.sh
rename to jetty_9-jdk13-slim/generate-jetty-start.sh
index de78102..5895278 100755
--- a/jetty_9.3-jre8-alpine/generate-jetty-start.sh
+++ b/jetty_9-jdk13-slim/generate-jetty-start.sh
@@ -4,4 +4,4 @@ if [ -z "$JETTY_START" ] ; then
JETTY_START=$JETTY_BASE/jetty.start
fi
rm -f $JETTY_START
-/docker-entrypoint.sh --dry-run | sed 's/\\$//' > $JETTY_START
+/docker-entrypoint.sh --dry-run | sed -e 's/ -Djava.io.tmpdir=[^ ]*//g' -e 's/\\$//' > $JETTY_START
diff --git a/jetty_jre8/Dockerfile b/jetty_9-jre11-slim/Dockerfile
similarity index 59%
copy from jetty_jre8/Dockerfile
copy to jetty_9-jre11-slim/Dockerfile
index c356c98..325ef05 100644
--- a/jetty_jre8/Dockerfile
+++ b/jetty_9-jre11-slim/Dockerfile
@@ -1,14 +1,11 @@
-FROM openjdk:8-jre
-
-# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added
-RUN groupadd -r jetty && useradd -r -g jetty jetty
+# DO NOT EDIT. Edit Dockerfile-9.4 and use update.sh
+FROM openjdk:13-jdk AS Jetty94
+ENV JETTY_VERSION 9.4.24.v20191120
ENV JETTY_HOME /usr/local/jetty
+ENV JETTY_BASE /var/lib/jetty
+ENV TMPDIR /tmp/jetty
ENV PATH $JETTY_HOME/bin:$PATH
-RUN mkdir -p "$JETTY_HOME"
-WORKDIR $JETTY_HOME
-
-ENV JETTY_VERSION 9.4.18.v20190429
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)
@@ -31,33 +28,51 @@ ENV JETTY_GPG_KEYS \
5C9579B3DB2E506429319AAEF33B071B29559E1E
RUN set -xe \
+ && mkdir /jetty-keys \
+ && export GNUPGHOME=/jetty-keys; \
+ for key in $JETTY_GPG_KEYS; do \
+ for server in \
+ ha.pool.sks-keyservers.net \
+ p80.pool.sks-keyservers.net:80 \
+ ipv4.pool.sks-keyservers.net \
+ pgp.mit.edu ; \
+ do \
+ if gpg --batch --keyserver "$server" --recv-keys "$key"; then \
+ break; \
+ fi; \
+ done; \
+ done \
+ && 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 \
- && export GNUPGHOME="$(mktemp -d)" \
- && for key in $JETTY_GPG_KEYS; do \
- gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; done \
&& gpg --batch --verify jetty.tar.gz.asc jetty.tar.gz \
- && gpgconf --kill all \
- && rm -rf "$GNUPGHOME" \
&& tar -xvf jetty.tar.gz --strip-components=1 \
&& sed -i '/jetty-logging/d' etc/jetty.conf \
- && rm jetty.tar.gz* \
+ && rm -fr jetty.tar.gz* \
+ && 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" \
&& rm -rf /tmp/hsperfdata_root
+# Start a new image on the target and import jetty
+FROM openjdk:11-jre-slim
+
+ENV JETTY_HOME /usr/local/jetty
ENV JETTY_BASE /var/lib/jetty
-RUN mkdir -p "$JETTY_BASE"
-WORKDIR $JETTY_BASE
+ENV TMPDIR /tmp/jetty
+ENV PATH $JETTY_HOME/bin:$PATH
-RUN set -xe \
- && java -jar "$JETTY_HOME/start.jar" --create-startd --add-to-start="server,http,deploy,jsp,jstl,ext,resources,websocket" \
- && chown -R jetty:jetty "$JETTY_BASE" \
- && rm -rf /tmp/hsperfdata_root
+COPY --from=Jetty94 $JETTY_HOME $JETTY_HOME
+COPY --from=Jetty94 $JETTY_BASE $JETTY_BASE
-ENV TMPDIR /tmp/jetty
RUN set -xe \
&& mkdir -p "$TMPDIR" \
- && chown -R jetty:jetty "$TMPDIR"
+ && groupadd -r jetty && useradd -r -g jetty jetty \
+ && chown -R jetty:jetty "$JETTY_HOME" "$JETTY_BASE" "$TMPDIR" \
+ && rm -rf /tmp/hsperfdata_root
+WORKDIR $JETTY_BASE
COPY docker-entrypoint.sh generate-jetty-start.sh /
USER jetty
diff --git a/jetty_9-jre11/docker-entrypoint.sh b/jetty_9-jre11-slim/docker-entrypoint.sh
similarity index 92%
copy from jetty_9-jre11/docker-entrypoint.sh
copy to jetty_9-jre11-slim/docker-entrypoint.sh
index cd8f821..41ccbe4 100755
--- a/jetty_9-jre11/docker-entrypoint.sh
+++ b/jetty_9-jre11-slim/docker-entrypoint.sh
@@ -59,7 +59,9 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
--version |\
-v )\
# It is a terminating command, so exec directly
- exec "$@"
+ JAVA="$1"
+ shift
+ exec $JAVA $JAVA_OPTIONS "$@"
esac
done
@@ -88,7 +90,9 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
set -- $(cat $JETTY_START)
else
# Do a jetty dry run to set the final command
- "$@" --dry-run > $JETTY_START
+ JAVA="$1"
+ shift
+ $JAVA $JAVA_OPTIONS "$@" --dry-run > $JETTY_START
if [ $(egrep -v '\\$' $JETTY_START | wc -l ) -gt 1 ] ; then
# command was more than a dry-run
cat $JETTY_START \
@@ -96,14 +100,14 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
| egrep -v '[^ ]*java .* org\.eclipse\.jetty\.xml\.XmlConfiguration '
exit
fi
- set -- $(sed 's/\\$//' $JETTY_START)
+ set -- $(sed -e 's/ -Djava.io.tmpdir=[^ ]*//g' -e 's/\\$//' $JETTY_START)
fi
fi
if [ "${1##*/}" = java -a -n "$JAVA_OPTIONS" ] ; then
- java="$1"
+ JAVA="$1"
shift
- set -- "$java" $JAVA_OPTIONS "$@"
+ set -- "$JAVA" $JAVA_OPTIONS "$@"
fi
exec "$@"
diff --git a/jetty_9-jre11/generate-jetty-start.sh b/jetty_9-jre11-slim/generate-jetty-start.sh
similarity index 50%
copy from jetty_9-jre11/generate-jetty-start.sh
copy to jetty_9-jre11-slim/generate-jetty-start.sh
index de78102..5895278 100755
--- a/jetty_9-jre11/generate-jetty-start.sh
+++ b/jetty_9-jre11-slim/generate-jetty-start.sh
@@ -4,4 +4,4 @@ if [ -z "$JETTY_START" ] ; then
JETTY_START=$JETTY_BASE/jetty.start
fi
rm -f $JETTY_START
-/docker-entrypoint.sh --dry-run | sed 's/\\$//' > $JETTY_START
+/docker-entrypoint.sh --dry-run | sed -e 's/ -Djava.io.tmpdir=[^ ]*//g' -e 's/\\$//' > $JETTY_START
diff --git a/jetty_9-jre11/Dockerfile b/jetty_9-jre11/Dockerfile
index 5e0fefe..e9bcceb 100644
--- a/jetty_9-jre11/Dockerfile
+++ b/jetty_9-jre11/Dockerfile
@@ -1,14 +1,11 @@
-FROM openjdk:11-jre
-
-# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added
-RUN groupadd -r jetty && useradd -r -g jetty jetty
+# DO NOT EDIT. Edit Dockerfile-9.4 and use update.sh
+FROM openjdk:13-jdk AS Jetty94
+ENV JETTY_VERSION 9.4.24.v20191120
ENV JETTY_HOME /usr/local/jetty
+ENV JETTY_BASE /var/lib/jetty
+ENV TMPDIR /tmp/jetty
ENV PATH $JETTY_HOME/bin:$PATH
-RUN mkdir -p "$JETTY_HOME"
-WORKDIR $JETTY_HOME
-
-ENV JETTY_VERSION 9.4.18.v20190429
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)
@@ -31,32 +28,51 @@ ENV JETTY_GPG_KEYS \
5C9579B3DB2E506429319AAEF33B071B29559E1E
RUN set -xe \
+ && mkdir /jetty-keys \
+ && export GNUPGHOME=/jetty-keys; \
+ for key in $JETTY_GPG_KEYS; do \
+ for server in \
+ ha.pool.sks-keyservers.net \
+ p80.pool.sks-keyservers.net:80 \
+ ipv4.pool.sks-keyservers.net \
+ pgp.mit.edu ; \
+ do \
+ if gpg --batch --keyserver "$server" --recv-keys "$key"; then \
+ break; \
+ fi; \
+ done; \
+ done \
+ && 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 \
- && export GNUPGHOME="$(mktemp -d)" \
- && for key in $JETTY_GPG_KEYS; do \
- gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; done \
&& gpg --batch --verify jetty.tar.gz.asc jetty.tar.gz \
- && rm -rf "$GNUPGHOME" \
&& tar -xvf jetty.tar.gz --strip-components=1 \
&& sed -i '/jetty-logging/d' etc/jetty.conf \
- && rm jetty.tar.gz* \
+ && rm -fr jetty.tar.gz* \
+ && 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" \
&& rm -rf /tmp/hsperfdata_root
+# Start a new image on the target and import jetty
+FROM openjdk:11-jre
+
+ENV JETTY_HOME /usr/local/jetty
ENV JETTY_BASE /var/lib/jetty
-RUN mkdir -p "$JETTY_BASE"
-WORKDIR $JETTY_BASE
+ENV TMPDIR /tmp/jetty
+ENV PATH $JETTY_HOME/bin:$PATH
-RUN set -xe \
- && java -jar "$JETTY_HOME/start.jar" --create-startd --add-to-start="server,http,deploy,jsp,jstl,ext,resources,websocket" \
- && chown -R jetty:jetty "$JETTY_BASE" \
- && rm -rf /tmp/hsperfdata_root
+COPY --from=Jetty94 $JETTY_HOME $JETTY_HOME
+COPY --from=Jetty94 $JETTY_BASE $JETTY_BASE
-ENV TMPDIR /tmp/jetty
RUN set -xe \
&& mkdir -p "$TMPDIR" \
- && chown -R jetty:jetty "$TMPDIR"
+ && groupadd -r jetty && useradd -r -g jetty jetty \
+ && chown -R jetty:jetty "$JETTY_HOME" "$JETTY_BASE" "$TMPDIR" \
+ && rm -rf /tmp/hsperfdata_root
+WORKDIR $JETTY_BASE
COPY docker-entrypoint.sh generate-jetty-start.sh /
USER jetty
diff --git a/jetty_9-jre11/docker-entrypoint.sh b/jetty_9-jre11/docker-entrypoint.sh
index cd8f821..41ccbe4 100755
--- a/jetty_9-jre11/docker-entrypoint.sh
+++ b/jetty_9-jre11/docker-entrypoint.sh
@@ -59,7 +59,9 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
--version |\
-v )\
# It is a terminating command, so exec directly
- exec "$@"
+ JAVA="$1"
+ shift
+ exec $JAVA $JAVA_OPTIONS "$@"
esac
done
@@ -88,7 +90,9 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
set -- $(cat $JETTY_START)
else
# Do a jetty dry run to set the final command
- "$@" --dry-run > $JETTY_START
+ JAVA="$1"
+ shift
+ $JAVA $JAVA_OPTIONS "$@" --dry-run > $JETTY_START
if [ $(egrep -v '\\$' $JETTY_START | wc -l ) -gt 1 ] ; then
# command was more than a dry-run
cat $JETTY_START \
@@ -96,14 +100,14 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
| egrep -v '[^ ]*java .* org\.eclipse\.jetty\.xml\.XmlConfiguration '
exit
fi
- set -- $(sed 's/\\$//' $JETTY_START)
+ set -- $(sed -e 's/ -Djava.io.tmpdir=[^ ]*//g' -e 's/\\$//' $JETTY_START)
fi
fi
if [ "${1##*/}" = java -a -n "$JAVA_OPTIONS" ] ; then
- java="$1"
+ JAVA="$1"
shift
- set -- "$java" $JAVA_OPTIONS "$@"
+ set -- "$JAVA" $JAVA_OPTIONS "$@"
fi
exec "$@"
diff --git a/jetty_9-jre11/generate-jetty-start.sh b/jetty_9-jre11/generate-jetty-start.sh
index de78102..5895278 100755
--- a/jetty_9-jre11/generate-jetty-start.sh
+++ b/jetty_9-jre11/generate-jetty-start.sh
@@ -4,4 +4,4 @@ if [ -z "$JETTY_START" ] ; then
JETTY_START=$JETTY_BASE/jetty.start
fi
rm -f $JETTY_START
-/docker-entrypoint.sh --dry-run | sed 's/\\$//' > $JETTY_START
+/docker-entrypoint.sh --dry-run | sed -e 's/ -Djava.io.tmpdir=[^ ]*//g' -e 's/\\$//' > $JETTY_START
diff --git a/jetty_jre8/Dockerfile b/jetty_9-jre8/Dockerfile
similarity index 60%
rename from jetty_jre8/Dockerfile
rename to jetty_9-jre8/Dockerfile
index c356c98..fa4f904 100644
--- a/jetty_jre8/Dockerfile
+++ b/jetty_9-jre8/Dockerfile
@@ -1,14 +1,11 @@
-FROM openjdk:8-jre
-
-# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added
-RUN groupadd -r jetty && useradd -r -g jetty jetty
+# DO NOT EDIT. Edit Dockerfile-9.4 and use update.sh
+FROM openjdk:13-jdk AS Jetty94
+ENV JETTY_VERSION 9.4.24.v20191120
ENV JETTY_HOME /usr/local/jetty
+ENV JETTY_BASE /var/lib/jetty
+ENV TMPDIR /tmp/jetty
ENV PATH $JETTY_HOME/bin:$PATH
-RUN mkdir -p "$JETTY_HOME"
-WORKDIR $JETTY_HOME
-
-ENV JETTY_VERSION 9.4.18.v20190429
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)
@@ -31,33 +28,51 @@ ENV JETTY_GPG_KEYS \
5C9579B3DB2E506429319AAEF33B071B29559E1E
RUN set -xe \
+ && mkdir /jetty-keys \
+ && export GNUPGHOME=/jetty-keys; \
+ for key in $JETTY_GPG_KEYS; do \
+ for server in \
+ ha.pool.sks-keyservers.net \
+ p80.pool.sks-keyservers.net:80 \
+ ipv4.pool.sks-keyservers.net \
+ pgp.mit.edu ; \
+ do \
+ if gpg --batch --keyserver "$server" --recv-keys "$key"; then \
+ break; \
+ fi; \
+ done; \
+ done \
+ && 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 \
- && export GNUPGHOME="$(mktemp -d)" \
- && for key in $JETTY_GPG_KEYS; do \
- gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; done \
&& gpg --batch --verify jetty.tar.gz.asc jetty.tar.gz \
- && gpgconf --kill all \
- && rm -rf "$GNUPGHOME" \
&& tar -xvf jetty.tar.gz --strip-components=1 \
&& sed -i '/jetty-logging/d' etc/jetty.conf \
- && rm jetty.tar.gz* \
+ && rm -fr jetty.tar.gz* \
+ && 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" \
&& rm -rf /tmp/hsperfdata_root
+# Start a new image on the target and import jetty
+FROM openjdk:8-jre
+
+ENV JETTY_HOME /usr/local/jetty
ENV JETTY_BASE /var/lib/jetty
-RUN mkdir -p "$JETTY_BASE"
-WORKDIR $JETTY_BASE
+ENV TMPDIR /tmp/jetty
+ENV PATH $JETTY_HOME/bin:$PATH
-RUN set -xe \
- && java -jar "$JETTY_HOME/start.jar" --create-startd --add-to-start="server,http,deploy,jsp,jstl,ext,resources,websocket" \
- && chown -R jetty:jetty "$JETTY_BASE" \
- && rm -rf /tmp/hsperfdata_root
+COPY --from=Jetty94 $JETTY_HOME $JETTY_HOME
+COPY --from=Jetty94 $JETTY_BASE $JETTY_BASE
-ENV TMPDIR /tmp/jetty
RUN set -xe \
&& mkdir -p "$TMPDIR" \
- && chown -R jetty:jetty "$TMPDIR"
+ && groupadd -r jetty && useradd -r -g jetty jetty \
+ && chown -R jetty:jetty "$JETTY_HOME" "$JETTY_BASE" "$TMPDIR" \
+ && rm -rf /tmp/hsperfdata_root
+WORKDIR $JETTY_BASE
COPY docker-entrypoint.sh generate-jetty-start.sh /
USER jetty
diff --git a/jetty_9-jre11/docker-entrypoint.sh b/jetty_9-jre8/docker-entrypoint.sh
similarity index 92%
copy from jetty_9-jre11/docker-entrypoint.sh
copy to jetty_9-jre8/docker-entrypoint.sh
index cd8f821..41ccbe4 100755
--- a/jetty_9-jre11/docker-entrypoint.sh
+++ b/jetty_9-jre8/docker-entrypoint.sh
@@ -59,7 +59,9 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
--version |\
-v )\
# It is a terminating command, so exec directly
- exec "$@"
+ JAVA="$1"
+ shift
+ exec $JAVA $JAVA_OPTIONS "$@"
esac
done
@@ -88,7 +90,9 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
set -- $(cat $JETTY_START)
else
# Do a jetty dry run to set the final command
- "$@" --dry-run > $JETTY_START
+ JAVA="$1"
+ shift
+ $JAVA $JAVA_OPTIONS "$@" --dry-run > $JETTY_START
if [ $(egrep -v '\\$' $JETTY_START | wc -l ) -gt 1 ] ; then
# command was more than a dry-run
cat $JETTY_START \
@@ -96,14 +100,14 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
| egrep -v '[^ ]*java .* org\.eclipse\.jetty\.xml\.XmlConfiguration '
exit
fi
- set -- $(sed 's/\\$//' $JETTY_START)
+ set -- $(sed -e 's/ -Djava.io.tmpdir=[^ ]*//g' -e 's/\\$//' $JETTY_START)
fi
fi
if [ "${1##*/}" = java -a -n "$JAVA_OPTIONS" ] ; then
- java="$1"
+ JAVA="$1"
shift
- set -- "$java" $JAVA_OPTIONS "$@"
+ set -- "$JAVA" $JAVA_OPTIONS "$@"
fi
exec "$@"
diff --git a/jetty_9-jre11/generate-jetty-start.sh b/jetty_9-jre8/generate-jetty-start.sh
similarity index 50%
copy from jetty_9-jre11/generate-jetty-start.sh
copy to jetty_9-jre8/generate-jetty-start.sh
index de78102..5895278 100755
--- a/jetty_9-jre11/generate-jetty-start.sh
+++ b/jetty_9-jre8/generate-jetty-start.sh
@@ -4,4 +4,4 @@ if [ -z "$JETTY_START" ] ; then
JETTY_START=$JETTY_BASE/jetty.start
fi
rm -f $JETTY_START
-/docker-entrypoint.sh --dry-run | sed 's/\\$//' > $JETTY_START
+/docker-entrypoint.sh --dry-run | sed -e 's/ -Djava.io.tmpdir=[^ ]*//g' -e 's/\\$//' > $JETTY_START
diff --git a/jetty_9.2-jre8/Dockerfile b/jetty_9.2-jre8/Dockerfile
index c9620d5..9913c6a 100644
--- a/jetty_9.2-jre8/Dockerfile
+++ b/jetty_9.2-jre8/Dockerfile
@@ -1,14 +1,10 @@
-FROM openjdk:8-jre
-
-# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added
-RUN groupadd -r jetty && useradd -r -g jetty jetty
+FROM openjdk:13-jdk AS Jetty94
+ENV JETTY_VERSION 9.2.29.v20191105
ENV JETTY_HOME /usr/local/jetty
+ENV JETTY_BASE /var/lib/jetty
+ENV TMPDIR /tmp/jetty
ENV PATH $JETTY_HOME/bin:$PATH
-RUN mkdir -p "$JETTY_HOME"
-WORKDIR $JETTY_HOME
-
-ENV JETTY_VERSION 9.2.28.v20190418
ENV JETTY_TGZ_URL https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-distribution/$JETTY_VERSION/jetty-distribution-$JETTY_VERSION.tar.gz
# GPG Keys are personal keys of Jetty committers (see https://github.com/eclipse/jetty.project/blob/0607c0e66e44b9c12a62b85551da3a0edce0281e/KEYS.txt)
@@ -31,36 +27,52 @@ ENV JETTY_GPG_KEYS \
5C9579B3DB2E506429319AAEF33B071B29559E1E
RUN set -xe \
+ && mkdir /jetty-keys \
+ && export GNUPGHOME=/jetty-keys; \
+ for key in $JETTY_GPG_KEYS; do \
+ for server in \
+ ha.pool.sks-keyservers.net \
+ p80.pool.sks-keyservers.net:80 \
+ ipv4.pool.sks-keyservers.net \
+ pgp.mit.edu ; \
+ do \
+ if gpg --batch --keyserver "$server" --recv-keys "$key"; then \
+ break; \
+ fi; \
+ done; \
+ done \
+ && 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 \
- && export GNUPGHOME="$(mktemp -d)" \
- && for key in $JETTY_GPG_KEYS; do \
- gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; done \
&& gpg --batch --verify jetty.tar.gz.asc jetty.tar.gz \
- && gpgconf --kill all \
- && rm -rf "$GNUPGHOME" \
&& tar -xvf jetty.tar.gz --strip-components=1 \
&& sed -i '/jetty-logging/d' etc/jetty.conf \
- && rm -fr demo-base javadoc \
- && rm jetty.tar.gz* \
+ && rm -fr jetty.tar.gz* \
+ && mkdir -p "$JETTY_BASE" \
+ && cd $JETTY_BASE \
+ && modules="$(grep -- ^--module= "$JETTY_HOME/start.ini" | cut -d= -f2 | paste -d, -s)" \
+ && java -jar "$JETTY_HOME/start.jar" --add-to-startd="$modules" \
&& rm -rf /tmp/hsperfdata_root
+# Start a new image on the target and import jetty
+FROM openjdk:8-jre
+
+ENV JETTY_HOME /usr/local/jetty
ENV JETTY_BASE /var/lib/jetty
-RUN mkdir -p "$JETTY_BASE"
-WORKDIR $JETTY_BASE
+ENV TMPDIR /tmp/jetty
+ENV PATH $JETTY_HOME/bin:$PATH
-# Get the list of modules in the default start.ini and build new base with those modules
-RUN modules="$(grep -- ^--module= "$JETTY_HOME/start.ini" | cut -d= -f2 | paste -d, -s)" \
- && set -xe \
- && java -jar "$JETTY_HOME/start.jar" --add-to-startd="$modules" \
- && chown -R jetty:jetty "$JETTY_BASE" \
- && rm -rf /tmp/hsperfdata_root
+COPY --from=Jetty94 $JETTY_HOME $JETTY_HOME
+COPY --from=Jetty94 $JETTY_BASE $JETTY_BASE
-ENV TMPDIR /tmp/jetty
RUN set -xe \
&& mkdir -p "$TMPDIR" \
- && chown -R jetty:jetty "$TMPDIR"
+ && groupadd -r jetty && useradd -r -g jetty jetty \
+ && chown -R jetty:jetty "$JETTY_HOME" "$JETTY_BASE" "$TMPDIR" \
+ && rm -rf /tmp/hsperfdata_root
+WORKDIR $JETTY_BASE
COPY docker-entrypoint.sh generate-jetty-start.sh /
USER jetty
diff --git a/jetty_9.2-jre8/docker-entrypoint.sh b/jetty_9.2-jre8/docker-entrypoint.sh
index cd8f821..41ccbe4 100755
--- a/jetty_9.2-jre8/docker-entrypoint.sh
+++ b/jetty_9.2-jre8/docker-entrypoint.sh
@@ -59,7 +59,9 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
--version |\
-v )\
# It is a terminating command, so exec directly
- exec "$@"
+ JAVA="$1"
+ shift
+ exec $JAVA $JAVA_OPTIONS "$@"
esac
done
@@ -88,7 +90,9 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
set -- $(cat $JETTY_START)
else
# Do a jetty dry run to set the final command
- "$@" --dry-run > $JETTY_START
+ JAVA="$1"
+ shift
+ $JAVA $JAVA_OPTIONS "$@" --dry-run > $JETTY_START
if [ $(egrep -v '\\$' $JETTY_START | wc -l ) -gt 1 ] ; then
# command was more than a dry-run
cat $JETTY_START \
@@ -96,14 +100,14 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
| egrep -v '[^ ]*java .* org\.eclipse\.jetty\.xml\.XmlConfiguration '
exit
fi
- set -- $(sed 's/\\$//' $JETTY_START)
+ set -- $(sed -e 's/ -Djava.io.tmpdir=[^ ]*//g' -e 's/\\$//' $JETTY_START)
fi
fi
if [ "${1##*/}" = java -a -n "$JAVA_OPTIONS" ] ; then
- java="$1"
+ JAVA="$1"
shift
- set -- "$java" $JAVA_OPTIONS "$@"
+ set -- "$JAVA" $JAVA_OPTIONS "$@"
fi
exec "$@"
diff --git a/jetty_9.2-jre8/generate-jetty-start.sh b/jetty_9.2-jre8/generate-jetty-start.sh
index de78102..5895278 100755
--- a/jetty_9.2-jre8/generate-jetty-start.sh
+++ b/jetty_9.2-jre8/generate-jetty-start.sh
@@ -4,4 +4,4 @@ if [ -z "$JETTY_START" ] ; then
JETTY_START=$JETTY_BASE/jetty.start
fi
rm -f $JETTY_START
-/docker-entrypoint.sh --dry-run | sed 's/\\$//' > $JETTY_START
+/docker-entrypoint.sh --dry-run | sed -e 's/ -Djava.io.tmpdir=[^ ]*//g' -e 's/\\$//' > $JETTY_START
diff --git a/jetty_9.3-jre8-alpine/Dockerfile b/jetty_9.3-jre8-alpine/Dockerfile
deleted file mode 100644
index f7f1bfa..0000000
diff --git a/jetty_9.3-jre8/Dockerfile b/jetty_9.3-jre8/Dockerfile
index 5160b66..6b0af09 100644
--- a/jetty_9.3-jre8/Dockerfile
+++ b/jetty_9.3-jre8/Dockerfile
@@ -1,14 +1,10 @@
-FROM openjdk:8-jre
-
-# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added
-RUN groupadd -r jetty && useradd -r -g jetty jetty
+FROM openjdk:13-jdk AS Jetty94
+ENV JETTY_VERSION 9.3.28.v20191105
ENV JETTY_HOME /usr/local/jetty
+ENV JETTY_BASE /var/lib/jetty
+ENV TMPDIR /tmp/jetty
ENV PATH $JETTY_HOME/bin:$PATH
-RUN mkdir -p "$JETTY_HOME"
-WORKDIR $JETTY_HOME
-
-ENV JETTY_VERSION 9.3.27.v20190418
ENV JETTY_TGZ_URL https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-distribution/$JETTY_VERSION/jetty-distribution-$JETTY_VERSION.tar.gz
# GPG Keys are personal keys of Jetty committers (see https://github.com/eclipse/jetty.project/blob/0607c0e66e44b9c12a62b85551da3a0edce0281e/KEYS.txt)
@@ -31,36 +27,52 @@ ENV JETTY_GPG_KEYS \
5C9579B3DB2E506429319AAEF33B071B29559E1E
RUN set -xe \
+ && mkdir /jetty-keys \
+ && export GNUPGHOME=/jetty-keys; \
+ for key in $JETTY_GPG_KEYS; do \
+ for server in \
+ ha.pool.sks-keyservers.net \
+ p80.pool.sks-keyservers.net:80 \
+ ipv4.pool.sks-keyservers.net \
+ pgp.mit.edu ; \
+ do \
+ if gpg --batch --keyserver "$server" --recv-keys "$key"; then \
+ break; \
+ fi; \
+ done; \
+ done \
+ && 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 \
- && export GNUPGHOME="$(mktemp -d)" \
- && for key in $JETTY_GPG_KEYS; do \
- gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; done \
&& gpg --batch --verify jetty.tar.gz.asc jetty.tar.gz \
- && gpgconf --kill all \
- && rm -rf "$GNUPGHOME" \
&& tar -xvf jetty.tar.gz --strip-components=1 \
&& sed -i '/jetty-logging/d' etc/jetty.conf \
- && rm -fr demo-base javadoc \
- && rm jetty.tar.gz* \
+ && rm -fr jetty.tar.gz* \
+ && mkdir -p "$JETTY_BASE" \
+ && cd $JETTY_BASE \
+ && modules="$(grep -- ^--module= "$JETTY_HOME/start.ini" | cut -d= -f2 | paste -d, -s)" \
+ && java -jar "$JETTY_HOME/start.jar" --add-to-startd="$modules" \
&& rm -rf /tmp/hsperfdata_root
+# Start a new image on the target and import jetty
+FROM openjdk:8-jre
+
+ENV JETTY_HOME /usr/local/jetty
ENV JETTY_BASE /var/lib/jetty
-RUN mkdir -p "$JETTY_BASE"
-WORKDIR $JETTY_BASE
+ENV TMPDIR /tmp/jetty
+ENV PATH $JETTY_HOME/bin:$PATH
-# Get the list of modules in the default start.ini and build new base with those modules
-RUN modules="$(grep -- ^--module= "$JETTY_HOME/start.ini" | cut -d= -f2 | paste -d, -s)" \
- && set -xe \
- && java -jar "$JETTY_HOME/start.jar" --add-to-startd="$modules" \
- && chown -R jetty:jetty "$JETTY_BASE" \
- && rm -rf /tmp/hsperfdata_root
+COPY --from=Jetty94 $JETTY_HOME $JETTY_HOME
+COPY --from=Jetty94 $JETTY_BASE $JETTY_BASE
-ENV TMPDIR /tmp/jetty
RUN set -xe \
&& mkdir -p "$TMPDIR" \
- && chown -R jetty:jetty "$TMPDIR"
+ && groupadd -r jetty && useradd -r -g jetty jetty \
+ && chown -R jetty:jetty "$JETTY_HOME" "$JETTY_BASE" "$TMPDIR" \
+ && rm -rf /tmp/hsperfdata_root
+WORKDIR $JETTY_BASE
COPY docker-entrypoint.sh generate-jetty-start.sh /
USER jetty
diff --git a/jetty_9.3-jre8/docker-entrypoint.sh b/jetty_9.3-jre8/docker-entrypoint.sh
index cd8f821..41ccbe4 100755
--- a/jetty_9.3-jre8/docker-entrypoint.sh
+++ b/jetty_9.3-jre8/docker-entrypoint.sh
@@ -59,7 +59,9 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
--version |\
-v )\
# It is a terminating command, so exec directly
- exec "$@"
+ JAVA="$1"
+ shift
+ exec $JAVA $JAVA_OPTIONS "$@"
esac
done
@@ -88,7 +90,9 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
set -- $(cat $JETTY_START)
else
# Do a jetty dry run to set the final command
- "$@" --dry-run > $JETTY_START
+ JAVA="$1"
+ shift
+ $JAVA $JAVA_OPTIONS "$@" --dry-run > $JETTY_START
if [ $(egrep -v '\\$' $JETTY_START | wc -l ) -gt 1 ] ; then
# command was more than a dry-run
cat $JETTY_START \
@@ -96,14 +100,14 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
| egrep -v '[^ ]*java .* org\.eclipse\.jetty\.xml\.XmlConfiguration '
exit
fi
- set -- $(sed 's/\\$//' $JETTY_START)
+ set -- $(sed -e 's/ -Djava.io.tmpdir=[^ ]*//g' -e 's/\\$//' $JETTY_START)
fi
fi
if [ "${1##*/}" = java -a -n "$JAVA_OPTIONS" ] ; then
- java="$1"
+ JAVA="$1"
shift
- set -- "$java" $JAVA_OPTIONS "$@"
+ set -- "$JAVA" $JAVA_OPTIONS "$@"
fi
exec "$@"
diff --git a/jetty_9.3-jre8/generate-jetty-start.sh b/jetty_9.3-jre8/generate-jetty-start.sh
index de78102..5895278 100755
--- a/jetty_9.3-jre8/generate-jetty-start.sh
+++ b/jetty_9.3-jre8/generate-jetty-start.sh
@@ -4,4 +4,4 @@ if [ -z "$JETTY_START" ] ; then
JETTY_START=$JETTY_BASE/jetty.start
fi
rm -f $JETTY_START
-/docker-entrypoint.sh --dry-run | sed 's/\\$//' > $JETTY_START
+/docker-entrypoint.sh --dry-run | sed -e 's/ -Djava.io.tmpdir=[^ ]*//g' -e 's/\\$//' > $JETTY_START
diff --git a/jetty_jre8-alpine/Dockerfile b/jetty_jdk13/Dockerfile
similarity index 58%
rename from jetty_jre8-alpine/Dockerfile
rename to jetty_jdk13/Dockerfile
index 0693965..2606300 100644
--- a/jetty_jre8-alpine/Dockerfile
+++ b/jetty_jdk13/Dockerfile
@@ -1,14 +1,11 @@
-FROM openjdk:8-jre-alpine
-
-# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added
-RUN addgroup -S jetty && adduser -D -S -H -G jetty jetty && rm -rf /etc/group- /etc/passwd- /etc/shadow-
+# DO NOT EDIT. Edit Dockerfile-9.4 and use update.sh
+FROM openjdk:13-jdk AS Jetty94
+ENV JETTY_VERSION 9.4.24.v20191120
ENV JETTY_HOME /usr/local/jetty
+ENV JETTY_BASE /var/lib/jetty
+ENV TMPDIR /tmp/jetty
ENV PATH $JETTY_HOME/bin:$PATH
-RUN mkdir -p "$JETTY_HOME"
-WORKDIR $JETTY_HOME
-
-ENV JETTY_VERSION 9.4.18.v20190429
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)
@@ -31,42 +28,51 @@ ENV JETTY_GPG_KEYS \
5C9579B3DB2E506429319AAEF33B071B29559E1E
RUN set -xe \
- # Install required packages for build time. Will be removed when build finishes.
- && apk add --no-cache --virtual .build-deps gnupg curl \
- \
+ && mkdir /jetty-keys \
+ && export GNUPGHOME=/jetty-keys; \
+ for key in $JETTY_GPG_KEYS; do \
+ for server in \
+ ha.pool.sks-keyservers.net \
+ p80.pool.sks-keyservers.net:80 \
+ ipv4.pool.sks-keyservers.net \
+ pgp.mit.edu ; \
+ do \
+ if gpg --batch --keyserver "$server" --recv-keys "$key"; then \
+ break; \
+ fi; \
+ done; \
+ done \
+ && 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 \
- && export GNUPGHOME="$(mktemp -d)" \
- && for key in $JETTY_GPG_KEYS; do \
- gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; done \
&& gpg --batch --verify jetty.tar.gz.asc jetty.tar.gz \
- && gpgconf --kill all \
- && rm -rf "$GNUPGHOME" \
- && tar -xvzf jetty.tar.gz \
- && mv jetty-home-$JETTY_VERSION/* ./ \
+ && tar -xvf jetty.tar.gz --strip-components=1 \
&& sed -i '/jetty-logging/d' etc/jetty.conf \
- && rm jetty.tar.gz* \
- && rm -fr jetty-home-$JETTY_VERSION/ \
- \
- # Remove installed packages and various cleanup
- && apk del .build-deps \
- && rm -fr .build-deps \
+ && rm -fr jetty.tar.gz* \
+ && 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" \
&& rm -rf /tmp/hsperfdata_root
+# Start a new image on the target and import jetty
+FROM openjdk:13-jdk
+
+ENV JETTY_HOME /usr/local/jetty
ENV JETTY_BASE /var/lib/jetty
-RUN mkdir -p "$JETTY_BASE"
-WORKDIR $JETTY_BASE
+ENV TMPDIR /tmp/jetty
+ENV PATH $JETTY_HOME/bin:$PATH
-RUN set -xe \
- && java -jar "$JETTY_HOME/start.jar" --create-startd --add-to-start="server,http,deploy,jsp,jstl,ext,resources,websocket" \
- && chown -R jetty:jetty "$JETTY_BASE" \
- && rm -rf /tmp/hsperfdata_root
+COPY --from=Jetty94 $JETTY_HOME $JETTY_HOME
+COPY --from=Jetty94 $JETTY_BASE $JETTY_BASE
-ENV TMPDIR /tmp/jetty
RUN set -xe \
&& mkdir -p "$TMPDIR" \
- && chown -R jetty:jetty "$TMPDIR"
+ && groupadd -r jetty && useradd -r -g jetty jetty \
+ && chown -R jetty:jetty "$JETTY_HOME" "$JETTY_BASE" "$TMPDIR" \
+ && rm -rf /tmp/hsperfdata_root
+WORKDIR $JETTY_BASE
COPY docker-entrypoint.sh generate-jetty-start.sh /
USER jetty
diff --git a/jetty_9-jre11/docker-entrypoint.sh b/jetty_jdk13/docker-entrypoint.sh
similarity index 92%
copy from jetty_9-jre11/docker-entrypoint.sh
copy to jetty_jdk13/docker-entrypoint.sh
index cd8f821..41ccbe4 100755
--- a/jetty_9-jre11/docker-entrypoint.sh
+++ b/jetty_jdk13/docker-entrypoint.sh
@@ -59,7 +59,9 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
--version |\
-v )\
# It is a terminating command, so exec directly
- exec "$@"
+ JAVA="$1"
+ shift
+ exec $JAVA $JAVA_OPTIONS "$@"
esac
done
@@ -88,7 +90,9 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
set -- $(cat $JETTY_START)
else
# Do a jetty dry run to set the final command
- "$@" --dry-run > $JETTY_START
+ JAVA="$1"
+ shift
+ $JAVA $JAVA_OPTIONS "$@" --dry-run > $JETTY_START
if [ $(egrep -v '\\$' $JETTY_START | wc -l ) -gt 1 ] ; then
# command was more than a dry-run
cat $JETTY_START \
@@ -96,14 +100,14 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
| egrep -v '[^ ]*java .* org\.eclipse\.jetty\.xml\.XmlConfiguration '
exit
fi
- set -- $(sed 's/\\$//' $JETTY_START)
+ set -- $(sed -e 's/ -Djava.io.tmpdir=[^ ]*//g' -e 's/\\$//' $JETTY_START)
fi
fi
if [ "${1##*/}" = java -a -n "$JAVA_OPTIONS" ] ; then
- java="$1"
+ JAVA="$1"
shift
- set -- "$java" $JAVA_OPTIONS "$@"
+ set -- "$JAVA" $JAVA_OPTIONS "$@"
fi
exec "$@"
diff --git a/jetty_9-jre11/generate-jetty-start.sh b/jetty_jdk13/generate-jetty-start.sh
similarity index 50%
copy from jetty_9-jre11/generate-jetty-start.sh
copy to jetty_jdk13/generate-jetty-start.sh
index de78102..5895278 100755
--- a/jetty_9-jre11/generate-jetty-start.sh
+++ b/jetty_jdk13/generate-jetty-start.sh
@@ -4,4 +4,4 @@ if [ -z "$JETTY_START" ] ; then
JETTY_START=$JETTY_BASE/jetty.start
fi
rm -f $JETTY_START
-/docker-entrypoint.sh --dry-run | sed 's/\\$//' > $JETTY_START
+/docker-entrypoint.sh --dry-run | sed -e 's/ -Djava.io.tmpdir=[^ ]*//g' -e 's/\\$//' > $JETTY_START
diff --git a/jetty_jre7/Dockerfile b/jetty_jre7/Dockerfile
deleted file mode 100644
index 20bad62..0000000
diff --git a/jetty_jre7/docker-entrypoint.sh b/jetty_jre7/docker-entrypoint.sh
deleted file mode 100755
index cd8f821..0000000
diff --git a/jetty_jre7/generate-jetty-start.sh b/jetty_jre7/generate-jetty-start.sh
deleted file mode 100755
index de78102..0000000
diff --git a/jetty_jre8-alpine/docker-entrypoint.sh b/jetty_jre8-alpine/docker-entrypoint.sh
deleted file mode 100755
index cd8f821..0000000
diff --git a/jetty_jre8-alpine/generate-jetty-start.sh b/jetty_jre8-alpine/generate-jetty-start.sh
deleted file mode 100755
index de78102..0000000
diff --git a/jetty_jre8/docker-entrypoint.sh b/jetty_jre8/docker-entrypoint.sh
deleted file mode 100755
index cd8f821..0000000
diff --git a/jetty_jre8/generate-jetty-start.sh b/jetty_jre8/generate-jetty-start.sh
deleted file mode 100755
index de78102..0000000 |
I'm currently am updating this PR with appropriate/docker-jetty#123 to remove the arm architecture from jdk13 images. I have reviewed all the arch files and they now only list the architectures that are listed in https://github.com/docker-library/official-images/blob/master/library/openjdk for their parent image. Standby.... |
Signed-off-by: Greg Wilkins <gregw@webtide.com>
Signed-off-by: Greg Wilkins <gregw@webtide.com>
Signed-off-by: Greg Wilkins <gregw@webtide.com>
As noted in appropriate/docker-jetty#121:
Rebuild's on the build servers can be triggered by any parent image changing. For example, if an Alpine image changes then all images First possible solution is to have Another solution would be to have one of them have the full install process while other variants of the same version I lean heavily toward the first, since templates make it fairly simple to maintain (and is what we do for most of the images that we directly maintain in |
Geeeze you make it difficult to do good engineering! Duplication is just asking for trouble - ideally all the variants should be able to be based on the same artefact, but unfortunately all this forces us to build it again and again for each image! Here is a PR appropriate/docker-jetty#126 that removes all the multi stage builds and duplicates the code into dockerfile into a slim variety that apt-gets the utils that it needs and then removes them! It is so fragile to do all that apt-mark magic, but if we are not allowed to copy anything from a base image, then that is the only choice! I will leave this open to encourage review of that PR and will update when it is accepted. |
Signed-off-by: Greg Wilkins <gregw@webtide.com>
Diff:diff --git a/_bashbrew-arches b/_bashbrew-arches
index 6e812ba..7baeccb 100644
--- a/_bashbrew-arches
+++ b/_bashbrew-arches
@@ -1,44 +1,7 @@
+jetty:9-jdk13-slim @ amd64
+jetty:9-jre8 @ amd64
jetty:9-jre11 @ amd64
-jetty:9-jre11 @ arm32v5
-jetty:9-jre11 @ arm32v7
-jetty:9-jre11 @ arm64v8
-jetty:9-jre11 @ i386
-jetty:9-jre11 @ ppc64le
-jetty:9-jre11 @ s390x
+jetty:9-jre11-slim @ amd64
jetty:9.2-jre8 @ amd64
-jetty:9.2-jre8 @ arm32v5
-jetty:9.2-jre8 @ arm32v7
-jetty:9.2-jre8 @ arm64v8
-jetty:9.2-jre8 @ i386
-jetty:9.2-jre8 @ ppc64le
-jetty:9.2-jre8 @ s390x
jetty:9.3-jre8 @ amd64
-jetty:9.3-jre8 @ arm32v5
-jetty:9.3-jre8 @ arm32v7
-jetty:9.3-jre8 @ arm64v8
-jetty:9.3-jre8 @ i386
-jetty:9.3-jre8 @ ppc64le
-jetty:9.3-jre8 @ s390x
-jetty:9.3-jre8-alpine @ amd64
-jetty:9.3-jre8-alpine @ arm32v6
-jetty:9.3-jre8-alpine @ arm64v8
-jetty:9.3-jre8-alpine @ i386
-jetty:9.3-jre8-alpine @ ppc64le
-jetty:9.3-jre8-alpine @ s390x
-jetty:jre7 @ amd64
-jetty:jre7 @ arm32v5
-jetty:jre7 @ arm32v7
-jetty:jre7 @ i386
-jetty:jre8 @ amd64
-jetty:jre8 @ arm32v5
-jetty:jre8 @ arm32v7
-jetty:jre8 @ arm64v8
-jetty:jre8 @ i386
-jetty:jre8 @ ppc64le
-jetty:jre8 @ s390x
-jetty:jre8-alpine @ amd64
-jetty:jre8-alpine @ arm32v6
-jetty:jre8-alpine @ arm64v8
-jetty:jre8-alpine @ i386
-jetty:jre8-alpine @ ppc64le
-jetty:jre8-alpine @ s390x
+jetty:jdk13 @ amd64
diff --git a/_bashbrew-list b/_bashbrew-list
index 6e2cb87..53dab6a 100644
--- a/_bashbrew-list
+++ b/_bashbrew-list
@@ -1,35 +1,24 @@
jetty:9
-jetty:9-alpine
-jetty:9-jre7
+jetty:9-jdk13
+jetty:9-jdk13-slim
jetty:9-jre8
-jetty:9-jre8-alpine
jetty:9-jre11
-jetty:9.2
-jetty:9.2-jre7
+jetty:9-jre11-slim
jetty:9.2-jre8
-jetty:9.2.28
-jetty:9.2.28-jre7
-jetty:9.2.28-jre8
-jetty:9.3
-jetty:9.3-alpine
+jetty:9.2.29-jre8
jetty:9.3-jre8
-jetty:9.3-jre8-alpine
-jetty:9.3.27
-jetty:9.3.27-alpine
-jetty:9.3.27-jre8
-jetty:9.3.27-jre8-alpine
+jetty:9.3.28-jre8
jetty:9.4
-jetty:9.4-alpine
+jetty:9.4-jdk13
+jetty:9.4-jdk13-slim
jetty:9.4-jre8
-jetty:9.4-jre8-alpine
jetty:9.4-jre11
-jetty:9.4.18
-jetty:9.4.18-alpine
-jetty:9.4.18-jre8
-jetty:9.4.18-jre8-alpine
-jetty:9.4.18-jre11
-jetty:alpine
-jetty:jre7
-jetty:jre8
-jetty:jre8-alpine
+jetty:9.4-jre11-slim
+jetty:9.4.24
+jetty:9.4.24-jdk13
+jetty:9.4.24-jdk13-slim
+jetty:9.4.24-jre8
+jetty:9.4.24-jre11
+jetty:9.4.24-jre11-slim
+jetty:jdk13
jetty:latest
diff --git a/jetty_jre8-alpine/Dockerfile b/jetty_9-jdk13-slim/Dockerfile
similarity index 36%
copy from jetty_jre8-alpine/Dockerfile
copy to jetty_9-jdk13-slim/Dockerfile
index 0693965..bb8254b 100644
--- a/jetty_jre8-alpine/Dockerfile
+++ b/jetty_9-jdk13-slim/Dockerfile
@@ -1,14 +1,11 @@
-FROM openjdk:8-jre-alpine
-
-# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added
-RUN addgroup -S jetty && adduser -D -S -H -G jetty jetty && rm -rf /etc/group- /etc/passwd- /etc/shadow-
+# DO NOT EDIT. Edit Dockerfile-9.4 and use update.sh
+FROM openjdk:13-jdk-slim
+ENV JETTY_VERSION 9.4.24.v20191120
ENV JETTY_HOME /usr/local/jetty
+ENV JETTY_BASE /var/lib/jetty
+ENV TMPDIR /tmp/jetty
ENV PATH $JETTY_HOME/bin:$PATH
-RUN mkdir -p "$JETTY_HOME"
-WORKDIR $JETTY_HOME
-
-ENV JETTY_VERSION 9.4.18.v20190429
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)
@@ -30,43 +27,72 @@ ENV JETTY_GPG_KEYS \
# Greg Wilkins <gregw@webtide.com>
5C9579B3DB2E506429319AAEF33B071B29559E1E
-RUN set -xe \
- # Install required packages for build time. Will be removed when build finishes.
- && apk add --no-cache --virtual .build-deps gnupg curl \
- \
- && curl -SL "$JETTY_TGZ_URL" -o jetty.tar.gz \
- && curl -SL "$JETTY_TGZ_URL.asc" -o jetty.tar.gz.asc \
- && export GNUPGHOME="$(mktemp -d)" \
- && for key in $JETTY_GPG_KEYS; do \
- gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; done \
- && gpg --batch --verify jetty.tar.gz.asc jetty.tar.gz \
- && gpgconf --kill all \
- && rm -rf "$GNUPGHOME" \
- && tar -xvzf jetty.tar.gz \
- && mv jetty-home-$JETTY_VERSION/* ./ \
- && sed -i '/jetty-logging/d' etc/jetty.conf \
- && rm jetty.tar.gz* \
- && rm -fr jetty-home-$JETTY_VERSION/ \
- \
- # Remove installed packages and various cleanup
- && apk del .build-deps \
- && rm -fr .build-deps \
- && rm -rf /tmp/hsperfdata_root
+RUN set -xe ; \
+ # Save initial installatin state
+ export savedAptMark="$(apt-mark showmanual)" ; \
+ #
+ # 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 \
+ for server in \
+ ha.pool.sks-keyservers.net \
+ p80.pool.sks-keyservers.net:80 \
+ ipv4.pool.sks-keyservers.net \
+ pgp.mit.edu ; \
+ do \
+ if gpg --batch --keyserver "$server" --recv-keys "$key"; then \
+ break; \
+ fi; \
+ done; \
+ 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" ; \
+ mkdir -p "$TMPDIR" ; \
+ groupadd -r jetty && useradd -r -g jetty jetty ; \
+ chown -R jetty:jetty "$JETTY_HOME" "$JETTY_BASE" "$TMPDIR" ; \
+ #
+ # 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 ;
-ENV JETTY_BASE /var/lib/jetty
-RUN mkdir -p "$JETTY_BASE"
WORKDIR $JETTY_BASE
-
-RUN set -xe \
- && java -jar "$JETTY_HOME/start.jar" --create-startd --add-to-start="server,http,deploy,jsp,jstl,ext,resources,websocket" \
- && chown -R jetty:jetty "$JETTY_BASE" \
- && rm -rf /tmp/hsperfdata_root
-
-ENV TMPDIR /tmp/jetty
-RUN set -xe \
- && mkdir -p "$TMPDIR" \
- && chown -R jetty:jetty "$TMPDIR"
-
COPY docker-entrypoint.sh generate-jetty-start.sh /
USER jetty
diff --git a/jetty_9.3-jre8-alpine/docker-entrypoint.sh b/jetty_9-jdk13-slim/docker-entrypoint.sh
similarity index 92%
rename from jetty_9.3-jre8-alpine/docker-entrypoint.sh
rename to jetty_9-jdk13-slim/docker-entrypoint.sh
index cd8f821..41ccbe4 100755
--- a/jetty_9.3-jre8-alpine/docker-entrypoint.sh
+++ b/jetty_9-jdk13-slim/docker-entrypoint.sh
@@ -59,7 +59,9 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
--version |\
-v )\
# It is a terminating command, so exec directly
- exec "$@"
+ JAVA="$1"
+ shift
+ exec $JAVA $JAVA_OPTIONS "$@"
esac
done
@@ -88,7 +90,9 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
set -- $(cat $JETTY_START)
else
# Do a jetty dry run to set the final command
- "$@" --dry-run > $JETTY_START
+ JAVA="$1"
+ shift
+ $JAVA $JAVA_OPTIONS "$@" --dry-run > $JETTY_START
if [ $(egrep -v '\\$' $JETTY_START | wc -l ) -gt 1 ] ; then
# command was more than a dry-run
cat $JETTY_START \
@@ -96,14 +100,14 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
| egrep -v '[^ ]*java .* org\.eclipse\.jetty\.xml\.XmlConfiguration '
exit
fi
- set -- $(sed 's/\\$//' $JETTY_START)
+ set -- $(sed -e 's/ -Djava.io.tmpdir=[^ ]*//g' -e 's/\\$//' $JETTY_START)
fi
fi
if [ "${1##*/}" = java -a -n "$JAVA_OPTIONS" ] ; then
- java="$1"
+ JAVA="$1"
shift
- set -- "$java" $JAVA_OPTIONS "$@"
+ set -- "$JAVA" $JAVA_OPTIONS "$@"
fi
exec "$@"
diff --git a/jetty_9.3-jre8-alpine/generate-jetty-start.sh b/jetty_9-jdk13-slim/generate-jetty-start.sh
similarity index 50%
rename from jetty_9.3-jre8-alpine/generate-jetty-start.sh
rename to jetty_9-jdk13-slim/generate-jetty-start.sh
index de78102..5895278 100755
--- a/jetty_9.3-jre8-alpine/generate-jetty-start.sh
+++ b/jetty_9-jdk13-slim/generate-jetty-start.sh
@@ -4,4 +4,4 @@ if [ -z "$JETTY_START" ] ; then
JETTY_START=$JETTY_BASE/jetty.start
fi
rm -f $JETTY_START
-/docker-entrypoint.sh --dry-run | sed 's/\\$//' > $JETTY_START
+/docker-entrypoint.sh --dry-run | sed -e 's/ -Djava.io.tmpdir=[^ ]*//g' -e 's/\\$//' > $JETTY_START
diff --git a/jetty_jre8-alpine/Dockerfile b/jetty_9-jre11-slim/Dockerfile
similarity index 36%
copy from jetty_jre8-alpine/Dockerfile
copy to jetty_9-jre11-slim/Dockerfile
index 0693965..02999c7 100644
--- a/jetty_jre8-alpine/Dockerfile
+++ b/jetty_9-jre11-slim/Dockerfile
@@ -1,14 +1,11 @@
-FROM openjdk:8-jre-alpine
-
-# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added
-RUN addgroup -S jetty && adduser -D -S -H -G jetty jetty && rm -rf /etc/group- /etc/passwd- /etc/shadow-
+# DO NOT EDIT. Edit Dockerfile-9.4 and use update.sh
+FROM openjdk:11-jre-slim
+ENV JETTY_VERSION 9.4.24.v20191120
ENV JETTY_HOME /usr/local/jetty
+ENV JETTY_BASE /var/lib/jetty
+ENV TMPDIR /tmp/jetty
ENV PATH $JETTY_HOME/bin:$PATH
-RUN mkdir -p "$JETTY_HOME"
-WORKDIR $JETTY_HOME
-
-ENV JETTY_VERSION 9.4.18.v20190429
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)
@@ -30,43 +27,72 @@ ENV JETTY_GPG_KEYS \
# Greg Wilkins <gregw@webtide.com>
5C9579B3DB2E506429319AAEF33B071B29559E1E
-RUN set -xe \
- # Install required packages for build time. Will be removed when build finishes.
- && apk add --no-cache --virtual .build-deps gnupg curl \
- \
- && curl -SL "$JETTY_TGZ_URL" -o jetty.tar.gz \
- && curl -SL "$JETTY_TGZ_URL.asc" -o jetty.tar.gz.asc \
- && export GNUPGHOME="$(mktemp -d)" \
- && for key in $JETTY_GPG_KEYS; do \
- gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; done \
- && gpg --batch --verify jetty.tar.gz.asc jetty.tar.gz \
- && gpgconf --kill all \
- && rm -rf "$GNUPGHOME" \
- && tar -xvzf jetty.tar.gz \
- && mv jetty-home-$JETTY_VERSION/* ./ \
- && sed -i '/jetty-logging/d' etc/jetty.conf \
- && rm jetty.tar.gz* \
- && rm -fr jetty-home-$JETTY_VERSION/ \
- \
- # Remove installed packages and various cleanup
- && apk del .build-deps \
- && rm -fr .build-deps \
- && rm -rf /tmp/hsperfdata_root
+RUN set -xe ; \
+ # Save initial installatin state
+ export savedAptMark="$(apt-mark showmanual)" ; \
+ #
+ # 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 \
+ for server in \
+ ha.pool.sks-keyservers.net \
+ p80.pool.sks-keyservers.net:80 \
+ ipv4.pool.sks-keyservers.net \
+ pgp.mit.edu ; \
+ do \
+ if gpg --batch --keyserver "$server" --recv-keys "$key"; then \
+ break; \
+ fi; \
+ done; \
+ 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" ; \
+ mkdir -p "$TMPDIR" ; \
+ groupadd -r jetty && useradd -r -g jetty jetty ; \
+ chown -R jetty:jetty "$JETTY_HOME" "$JETTY_BASE" "$TMPDIR" ; \
+ #
+ # 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 ;
-ENV JETTY_BASE /var/lib/jetty
-RUN mkdir -p "$JETTY_BASE"
WORKDIR $JETTY_BASE
-
-RUN set -xe \
- && java -jar "$JETTY_HOME/start.jar" --create-startd --add-to-start="server,http,deploy,jsp,jstl,ext,resources,websocket" \
- && chown -R jetty:jetty "$JETTY_BASE" \
- && rm -rf /tmp/hsperfdata_root
-
-ENV TMPDIR /tmp/jetty
-RUN set -xe \
- && mkdir -p "$TMPDIR" \
- && chown -R jetty:jetty "$TMPDIR"
-
COPY docker-entrypoint.sh generate-jetty-start.sh /
USER jetty
diff --git a/jetty_9-jre11/docker-entrypoint.sh b/jetty_9-jre11-slim/docker-entrypoint.sh
similarity index 92%
copy from jetty_9-jre11/docker-entrypoint.sh
copy to jetty_9-jre11-slim/docker-entrypoint.sh
index cd8f821..41ccbe4 100755
--- a/jetty_9-jre11/docker-entrypoint.sh
+++ b/jetty_9-jre11-slim/docker-entrypoint.sh
@@ -59,7 +59,9 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
--version |\
-v )\
# It is a terminating command, so exec directly
- exec "$@"
+ JAVA="$1"
+ shift
+ exec $JAVA $JAVA_OPTIONS "$@"
esac
done
@@ -88,7 +90,9 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
set -- $(cat $JETTY_START)
else
# Do a jetty dry run to set the final command
- "$@" --dry-run > $JETTY_START
+ JAVA="$1"
+ shift
+ $JAVA $JAVA_OPTIONS "$@" --dry-run > $JETTY_START
if [ $(egrep -v '\\$' $JETTY_START | wc -l ) -gt 1 ] ; then
# command was more than a dry-run
cat $JETTY_START \
@@ -96,14 +100,14 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
| egrep -v '[^ ]*java .* org\.eclipse\.jetty\.xml\.XmlConfiguration '
exit
fi
- set -- $(sed 's/\\$//' $JETTY_START)
+ set -- $(sed -e 's/ -Djava.io.tmpdir=[^ ]*//g' -e 's/\\$//' $JETTY_START)
fi
fi
if [ "${1##*/}" = java -a -n "$JAVA_OPTIONS" ] ; then
- java="$1"
+ JAVA="$1"
shift
- set -- "$java" $JAVA_OPTIONS "$@"
+ set -- "$JAVA" $JAVA_OPTIONS "$@"
fi
exec "$@"
diff --git a/jetty_9-jre11/generate-jetty-start.sh b/jetty_9-jre11-slim/generate-jetty-start.sh
similarity index 50%
copy from jetty_9-jre11/generate-jetty-start.sh
copy to jetty_9-jre11-slim/generate-jetty-start.sh
index de78102..5895278 100755
--- a/jetty_9-jre11/generate-jetty-start.sh
+++ b/jetty_9-jre11-slim/generate-jetty-start.sh
@@ -4,4 +4,4 @@ if [ -z "$JETTY_START" ] ; then
JETTY_START=$JETTY_BASE/jetty.start
fi
rm -f $JETTY_START
-/docker-entrypoint.sh --dry-run | sed 's/\\$//' > $JETTY_START
+/docker-entrypoint.sh --dry-run | sed -e 's/ -Djava.io.tmpdir=[^ ]*//g' -e 's/\\$//' > $JETTY_START
diff --git a/jetty_9-jre11/Dockerfile b/jetty_9-jre11/Dockerfile
index 5e0fefe..bf8c67b 100644
--- a/jetty_9-jre11/Dockerfile
+++ b/jetty_9-jre11/Dockerfile
@@ -1,14 +1,11 @@
+# DO NOT EDIT. Edit Dockerfile-9.4 and use update.sh
FROM openjdk:11-jre
-# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added
-RUN groupadd -r jetty && useradd -r -g jetty jetty
-
+ENV JETTY_VERSION 9.4.24.v20191120
ENV JETTY_HOME /usr/local/jetty
+ENV JETTY_BASE /var/lib/jetty
+ENV TMPDIR /tmp/jetty
ENV PATH $JETTY_HOME/bin:$PATH
-RUN mkdir -p "$JETTY_HOME"
-WORKDIR $JETTY_HOME
-
-ENV JETTY_VERSION 9.4.18.v20190429
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)
@@ -30,33 +27,55 @@ ENV JETTY_GPG_KEYS \
# Greg Wilkins <gregw@webtide.com>
5C9579B3DB2E506429319AAEF33B071B29559E1E
-RUN set -xe \
- && curl -SL "$JETTY_TGZ_URL" -o jetty.tar.gz \
- && curl -SL "$JETTY_TGZ_URL.asc" -o jetty.tar.gz.asc \
- && export GNUPGHOME="$(mktemp -d)" \
- && for key in $JETTY_GPG_KEYS; do \
- gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; done \
- && gpg --batch --verify jetty.tar.gz.asc jetty.tar.gz \
- && rm -rf "$GNUPGHOME" \
- && tar -xvf jetty.tar.gz --strip-components=1 \
- && sed -i '/jetty-logging/d' etc/jetty.conf \
- && rm jetty.tar.gz* \
- && rm -rf /tmp/hsperfdata_root
+RUN set -xe ; \
+ # fetch GPG keys
+ export GNUPGHOME=/jetty-keys ; \
+ mkdir -p "$GNUPGHOME" ; \
+ for key in $JETTY_GPG_KEYS; do \
+ for server in \
+ ha.pool.sks-keyservers.net \
+ p80.pool.sks-keyservers.net:80 \
+ ipv4.pool.sks-keyservers.net \
+ pgp.mit.edu ; \
+ do \
+ if gpg --batch --keyserver "$server" --recv-keys "$key"; then \
+ break; \
+ fi; \
+ done; \
+ 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" ; \
+ mkdir -p "$TMPDIR" ; \
+ groupadd -r jetty && useradd -r -g jetty jetty ; \
+ chown -R jetty:jetty "$JETTY_HOME" "$JETTY_BASE" "$TMPDIR" ; \
+ #
+ # 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 ;
-ENV JETTY_BASE /var/lib/jetty
-RUN mkdir -p "$JETTY_BASE"
WORKDIR $JETTY_BASE
-
-RUN set -xe \
- && java -jar "$JETTY_HOME/start.jar" --create-startd --add-to-start="server,http,deploy,jsp,jstl,ext,resources,websocket" \
- && chown -R jetty:jetty "$JETTY_BASE" \
- && rm -rf /tmp/hsperfdata_root
-
-ENV TMPDIR /tmp/jetty
-RUN set -xe \
- && mkdir -p "$TMPDIR" \
- && chown -R jetty:jetty "$TMPDIR"
-
COPY docker-entrypoint.sh generate-jetty-start.sh /
USER jetty
diff --git a/jetty_9-jre11/docker-entrypoint.sh b/jetty_9-jre11/docker-entrypoint.sh
index cd8f821..41ccbe4 100755
--- a/jetty_9-jre11/docker-entrypoint.sh
+++ b/jetty_9-jre11/docker-entrypoint.sh
@@ -59,7 +59,9 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
--version |\
-v )\
# It is a terminating command, so exec directly
- exec "$@"
+ JAVA="$1"
+ shift
+ exec $JAVA $JAVA_OPTIONS "$@"
esac
done
@@ -88,7 +90,9 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
set -- $(cat $JETTY_START)
else
# Do a jetty dry run to set the final command
- "$@" --dry-run > $JETTY_START
+ JAVA="$1"
+ shift
+ $JAVA $JAVA_OPTIONS "$@" --dry-run > $JETTY_START
if [ $(egrep -v '\\$' $JETTY_START | wc -l ) -gt 1 ] ; then
# command was more than a dry-run
cat $JETTY_START \
@@ -96,14 +100,14 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
| egrep -v '[^ ]*java .* org\.eclipse\.jetty\.xml\.XmlConfiguration '
exit
fi
- set -- $(sed 's/\\$//' $JETTY_START)
+ set -- $(sed -e 's/ -Djava.io.tmpdir=[^ ]*//g' -e 's/\\$//' $JETTY_START)
fi
fi
if [ "${1##*/}" = java -a -n "$JAVA_OPTIONS" ] ; then
- java="$1"
+ JAVA="$1"
shift
- set -- "$java" $JAVA_OPTIONS "$@"
+ set -- "$JAVA" $JAVA_OPTIONS "$@"
fi
exec "$@"
diff --git a/jetty_9-jre11/generate-jetty-start.sh b/jetty_9-jre11/generate-jetty-start.sh
index de78102..5895278 100755
--- a/jetty_9-jre11/generate-jetty-start.sh
+++ b/jetty_9-jre11/generate-jetty-start.sh
@@ -4,4 +4,4 @@ if [ -z "$JETTY_START" ] ; then
JETTY_START=$JETTY_BASE/jetty.start
fi
rm -f $JETTY_START
-/docker-entrypoint.sh --dry-run | sed 's/\\$//' > $JETTY_START
+/docker-entrypoint.sh --dry-run | sed -e 's/ -Djava.io.tmpdir=[^ ]*//g' -e 's/\\$//' > $JETTY_START
diff --git a/jetty_jre8/Dockerfile b/jetty_9-jre8/Dockerfile
similarity index 43%
rename from jetty_jre8/Dockerfile
rename to jetty_9-jre8/Dockerfile
index c356c98..2cff25c 100644
--- a/jetty_jre8/Dockerfile
+++ b/jetty_9-jre8/Dockerfile
@@ -1,14 +1,11 @@
+# DO NOT EDIT. Edit Dockerfile-9.4 and use update.sh
FROM openjdk:8-jre
-# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added
-RUN groupadd -r jetty && useradd -r -g jetty jetty
-
+ENV JETTY_VERSION 9.4.24.v20191120
ENV JETTY_HOME /usr/local/jetty
+ENV JETTY_BASE /var/lib/jetty
+ENV TMPDIR /tmp/jetty
ENV PATH $JETTY_HOME/bin:$PATH
-RUN mkdir -p "$JETTY_HOME"
-WORKDIR $JETTY_HOME
-
-ENV JETTY_VERSION 9.4.18.v20190429
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)
@@ -30,34 +27,55 @@ ENV JETTY_GPG_KEYS \
# Greg Wilkins <gregw@webtide.com>
5C9579B3DB2E506429319AAEF33B071B29559E1E
-RUN set -xe \
- && curl -SL "$JETTY_TGZ_URL" -o jetty.tar.gz \
- && curl -SL "$JETTY_TGZ_URL.asc" -o jetty.tar.gz.asc \
- && export GNUPGHOME="$(mktemp -d)" \
- && for key in $JETTY_GPG_KEYS; do \
- gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; done \
- && gpg --batch --verify jetty.tar.gz.asc jetty.tar.gz \
- && gpgconf --kill all \
- && rm -rf "$GNUPGHOME" \
- && tar -xvf jetty.tar.gz --strip-components=1 \
- && sed -i '/jetty-logging/d' etc/jetty.conf \
- && rm jetty.tar.gz* \
- && rm -rf /tmp/hsperfdata_root
+RUN set -xe ; \
+ # fetch GPG keys
+ export GNUPGHOME=/jetty-keys ; \
+ mkdir -p "$GNUPGHOME" ; \
+ for key in $JETTY_GPG_KEYS; do \
+ for server in \
+ ha.pool.sks-keyservers.net \
+ p80.pool.sks-keyservers.net:80 \
+ ipv4.pool.sks-keyservers.net \
+ pgp.mit.edu ; \
+ do \
+ if gpg --batch --keyserver "$server" --recv-keys "$key"; then \
+ break; \
+ fi; \
+ done; \
+ 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" ; \
+ mkdir -p "$TMPDIR" ; \
+ groupadd -r jetty && useradd -r -g jetty jetty ; \
+ chown -R jetty:jetty "$JETTY_HOME" "$JETTY_BASE" "$TMPDIR" ; \
+ #
+ # 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 ;
-ENV JETTY_BASE /var/lib/jetty
-RUN mkdir -p "$JETTY_BASE"
WORKDIR $JETTY_BASE
-
-RUN set -xe \
- && java -jar "$JETTY_HOME/start.jar" --create-startd --add-to-start="server,http,deploy,jsp,jstl,ext,resources,websocket" \
- && chown -R jetty:jetty "$JETTY_BASE" \
- && rm -rf /tmp/hsperfdata_root
-
-ENV TMPDIR /tmp/jetty
-RUN set -xe \
- && mkdir -p "$TMPDIR" \
- && chown -R jetty:jetty "$TMPDIR"
-
COPY docker-entrypoint.sh generate-jetty-start.sh /
USER jetty
diff --git a/jetty_9-jre11/docker-entrypoint.sh b/jetty_9-jre8/docker-entrypoint.sh
similarity index 92%
copy from jetty_9-jre11/docker-entrypoint.sh
copy to jetty_9-jre8/docker-entrypoint.sh
index cd8f821..41ccbe4 100755
--- a/jetty_9-jre11/docker-entrypoint.sh
+++ b/jetty_9-jre8/docker-entrypoint.sh
@@ -59,7 +59,9 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
--version |\
-v )\
# It is a terminating command, so exec directly
- exec "$@"
+ JAVA="$1"
+ shift
+ exec $JAVA $JAVA_OPTIONS "$@"
esac
done
@@ -88,7 +90,9 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
set -- $(cat $JETTY_START)
else
# Do a jetty dry run to set the final command
- "$@" --dry-run > $JETTY_START
+ JAVA="$1"
+ shift
+ $JAVA $JAVA_OPTIONS "$@" --dry-run > $JETTY_START
if [ $(egrep -v '\\$' $JETTY_START | wc -l ) -gt 1 ] ; then
# command was more than a dry-run
cat $JETTY_START \
@@ -96,14 +100,14 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
| egrep -v '[^ ]*java .* org\.eclipse\.jetty\.xml\.XmlConfiguration '
exit
fi
- set -- $(sed 's/\\$//' $JETTY_START)
+ set -- $(sed -e 's/ -Djava.io.tmpdir=[^ ]*//g' -e 's/\\$//' $JETTY_START)
fi
fi
if [ "${1##*/}" = java -a -n "$JAVA_OPTIONS" ] ; then
- java="$1"
+ JAVA="$1"
shift
- set -- "$java" $JAVA_OPTIONS "$@"
+ set -- "$JAVA" $JAVA_OPTIONS "$@"
fi
exec "$@"
diff --git a/jetty_9-jre11/generate-jetty-start.sh b/jetty_9-jre8/generate-jetty-start.sh
similarity index 50%
copy from jetty_9-jre11/generate-jetty-start.sh
copy to jetty_9-jre8/generate-jetty-start.sh
index de78102..5895278 100755
--- a/jetty_9-jre11/generate-jetty-start.sh
+++ b/jetty_9-jre8/generate-jetty-start.sh
@@ -4,4 +4,4 @@ if [ -z "$JETTY_START" ] ; then
JETTY_START=$JETTY_BASE/jetty.start
fi
rm -f $JETTY_START
-/docker-entrypoint.sh --dry-run | sed 's/\\$//' > $JETTY_START
+/docker-entrypoint.sh --dry-run | sed -e 's/ -Djava.io.tmpdir=[^ ]*//g' -e 's/\\$//' > $JETTY_START
diff --git a/jetty_9.2-jre8/Dockerfile b/jetty_9.2-jre8/Dockerfile
index c9620d5..9913c6a 100644
--- a/jetty_9.2-jre8/Dockerfile
+++ b/jetty_9.2-jre8/Dockerfile
@@ -1,14 +1,10 @@
-FROM openjdk:8-jre
-
-# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added
-RUN groupadd -r jetty && useradd -r -g jetty jetty
+FROM openjdk:13-jdk AS Jetty94
+ENV JETTY_VERSION 9.2.29.v20191105
ENV JETTY_HOME /usr/local/jetty
+ENV JETTY_BASE /var/lib/jetty
+ENV TMPDIR /tmp/jetty
ENV PATH $JETTY_HOME/bin:$PATH
-RUN mkdir -p "$JETTY_HOME"
-WORKDIR $JETTY_HOME
-
-ENV JETTY_VERSION 9.2.28.v20190418
ENV JETTY_TGZ_URL https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-distribution/$JETTY_VERSION/jetty-distribution-$JETTY_VERSION.tar.gz
# GPG Keys are personal keys of Jetty committers (see https://github.com/eclipse/jetty.project/blob/0607c0e66e44b9c12a62b85551da3a0edce0281e/KEYS.txt)
@@ -31,36 +27,52 @@ ENV JETTY_GPG_KEYS \
5C9579B3DB2E506429319AAEF33B071B29559E1E
RUN set -xe \
+ && mkdir /jetty-keys \
+ && export GNUPGHOME=/jetty-keys; \
+ for key in $JETTY_GPG_KEYS; do \
+ for server in \
+ ha.pool.sks-keyservers.net \
+ p80.pool.sks-keyservers.net:80 \
+ ipv4.pool.sks-keyservers.net \
+ pgp.mit.edu ; \
+ do \
+ if gpg --batch --keyserver "$server" --recv-keys "$key"; then \
+ break; \
+ fi; \
+ done; \
+ done \
+ && 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 \
- && export GNUPGHOME="$(mktemp -d)" \
- && for key in $JETTY_GPG_KEYS; do \
- gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; done \
&& gpg --batch --verify jetty.tar.gz.asc jetty.tar.gz \
- && gpgconf --kill all \
- && rm -rf "$GNUPGHOME" \
&& tar -xvf jetty.tar.gz --strip-components=1 \
&& sed -i '/jetty-logging/d' etc/jetty.conf \
- && rm -fr demo-base javadoc \
- && rm jetty.tar.gz* \
+ && rm -fr jetty.tar.gz* \
+ && mkdir -p "$JETTY_BASE" \
+ && cd $JETTY_BASE \
+ && modules="$(grep -- ^--module= "$JETTY_HOME/start.ini" | cut -d= -f2 | paste -d, -s)" \
+ && java -jar "$JETTY_HOME/start.jar" --add-to-startd="$modules" \
&& rm -rf /tmp/hsperfdata_root
+# Start a new image on the target and import jetty
+FROM openjdk:8-jre
+
+ENV JETTY_HOME /usr/local/jetty
ENV JETTY_BASE /var/lib/jetty
-RUN mkdir -p "$JETTY_BASE"
-WORKDIR $JETTY_BASE
+ENV TMPDIR /tmp/jetty
+ENV PATH $JETTY_HOME/bin:$PATH
-# Get the list of modules in the default start.ini and build new base with those modules
-RUN modules="$(grep -- ^--module= "$JETTY_HOME/start.ini" | cut -d= -f2 | paste -d, -s)" \
- && set -xe \
- && java -jar "$JETTY_HOME/start.jar" --add-to-startd="$modules" \
- && chown -R jetty:jetty "$JETTY_BASE" \
- && rm -rf /tmp/hsperfdata_root
+COPY --from=Jetty94 $JETTY_HOME $JETTY_HOME
+COPY --from=Jetty94 $JETTY_BASE $JETTY_BASE
-ENV TMPDIR /tmp/jetty
RUN set -xe \
&& mkdir -p "$TMPDIR" \
- && chown -R jetty:jetty "$TMPDIR"
+ && groupadd -r jetty && useradd -r -g jetty jetty \
+ && chown -R jetty:jetty "$JETTY_HOME" "$JETTY_BASE" "$TMPDIR" \
+ && rm -rf /tmp/hsperfdata_root
+WORKDIR $JETTY_BASE
COPY docker-entrypoint.sh generate-jetty-start.sh /
USER jetty
diff --git a/jetty_9.2-jre8/docker-entrypoint.sh b/jetty_9.2-jre8/docker-entrypoint.sh
index cd8f821..41ccbe4 100755
--- a/jetty_9.2-jre8/docker-entrypoint.sh
+++ b/jetty_9.2-jre8/docker-entrypoint.sh
@@ -59,7 +59,9 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
--version |\
-v )\
# It is a terminating command, so exec directly
- exec "$@"
+ JAVA="$1"
+ shift
+ exec $JAVA $JAVA_OPTIONS "$@"
esac
done
@@ -88,7 +90,9 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
set -- $(cat $JETTY_START)
else
# Do a jetty dry run to set the final command
- "$@" --dry-run > $JETTY_START
+ JAVA="$1"
+ shift
+ $JAVA $JAVA_OPTIONS "$@" --dry-run > $JETTY_START
if [ $(egrep -v '\\$' $JETTY_START | wc -l ) -gt 1 ] ; then
# command was more than a dry-run
cat $JETTY_START \
@@ -96,14 +100,14 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
| egrep -v '[^ ]*java .* org\.eclipse\.jetty\.xml\.XmlConfiguration '
exit
fi
- set -- $(sed 's/\\$//' $JETTY_START)
+ set -- $(sed -e 's/ -Djava.io.tmpdir=[^ ]*//g' -e 's/\\$//' $JETTY_START)
fi
fi
if [ "${1##*/}" = java -a -n "$JAVA_OPTIONS" ] ; then
- java="$1"
+ JAVA="$1"
shift
- set -- "$java" $JAVA_OPTIONS "$@"
+ set -- "$JAVA" $JAVA_OPTIONS "$@"
fi
exec "$@"
diff --git a/jetty_9.2-jre8/generate-jetty-start.sh b/jetty_9.2-jre8/generate-jetty-start.sh
index de78102..5895278 100755
--- a/jetty_9.2-jre8/generate-jetty-start.sh
+++ b/jetty_9.2-jre8/generate-jetty-start.sh
@@ -4,4 +4,4 @@ if [ -z "$JETTY_START" ] ; then
JETTY_START=$JETTY_BASE/jetty.start
fi
rm -f $JETTY_START
-/docker-entrypoint.sh --dry-run | sed 's/\\$//' > $JETTY_START
+/docker-entrypoint.sh --dry-run | sed -e 's/ -Djava.io.tmpdir=[^ ]*//g' -e 's/\\$//' > $JETTY_START
diff --git a/jetty_9.3-jre8-alpine/Dockerfile b/jetty_9.3-jre8-alpine/Dockerfile
deleted file mode 100644
index f7f1bfa..0000000
diff --git a/jetty_9.3-jre8/Dockerfile b/jetty_9.3-jre8/Dockerfile
index 5160b66..6b0af09 100644
--- a/jetty_9.3-jre8/Dockerfile
+++ b/jetty_9.3-jre8/Dockerfile
@@ -1,14 +1,10 @@
-FROM openjdk:8-jre
-
-# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added
-RUN groupadd -r jetty && useradd -r -g jetty jetty
+FROM openjdk:13-jdk AS Jetty94
+ENV JETTY_VERSION 9.3.28.v20191105
ENV JETTY_HOME /usr/local/jetty
+ENV JETTY_BASE /var/lib/jetty
+ENV TMPDIR /tmp/jetty
ENV PATH $JETTY_HOME/bin:$PATH
-RUN mkdir -p "$JETTY_HOME"
-WORKDIR $JETTY_HOME
-
-ENV JETTY_VERSION 9.3.27.v20190418
ENV JETTY_TGZ_URL https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-distribution/$JETTY_VERSION/jetty-distribution-$JETTY_VERSION.tar.gz
# GPG Keys are personal keys of Jetty committers (see https://github.com/eclipse/jetty.project/blob/0607c0e66e44b9c12a62b85551da3a0edce0281e/KEYS.txt)
@@ -31,36 +27,52 @@ ENV JETTY_GPG_KEYS \
5C9579B3DB2E506429319AAEF33B071B29559E1E
RUN set -xe \
+ && mkdir /jetty-keys \
+ && export GNUPGHOME=/jetty-keys; \
+ for key in $JETTY_GPG_KEYS; do \
+ for server in \
+ ha.pool.sks-keyservers.net \
+ p80.pool.sks-keyservers.net:80 \
+ ipv4.pool.sks-keyservers.net \
+ pgp.mit.edu ; \
+ do \
+ if gpg --batch --keyserver "$server" --recv-keys "$key"; then \
+ break; \
+ fi; \
+ done; \
+ done \
+ && 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 \
- && export GNUPGHOME="$(mktemp -d)" \
- && for key in $JETTY_GPG_KEYS; do \
- gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; done \
&& gpg --batch --verify jetty.tar.gz.asc jetty.tar.gz \
- && gpgconf --kill all \
- && rm -rf "$GNUPGHOME" \
&& tar -xvf jetty.tar.gz --strip-components=1 \
&& sed -i '/jetty-logging/d' etc/jetty.conf \
- && rm -fr demo-base javadoc \
- && rm jetty.tar.gz* \
+ && rm -fr jetty.tar.gz* \
+ && mkdir -p "$JETTY_BASE" \
+ && cd $JETTY_BASE \
+ && modules="$(grep -- ^--module= "$JETTY_HOME/start.ini" | cut -d= -f2 | paste -d, -s)" \
+ && java -jar "$JETTY_HOME/start.jar" --add-to-startd="$modules" \
&& rm -rf /tmp/hsperfdata_root
+# Start a new image on the target and import jetty
+FROM openjdk:8-jre
+
+ENV JETTY_HOME /usr/local/jetty
ENV JETTY_BASE /var/lib/jetty
-RUN mkdir -p "$JETTY_BASE"
-WORKDIR $JETTY_BASE
+ENV TMPDIR /tmp/jetty
+ENV PATH $JETTY_HOME/bin:$PATH
-# Get the list of modules in the default start.ini and build new base with those modules
-RUN modules="$(grep -- ^--module= "$JETTY_HOME/start.ini" | cut -d= -f2 | paste -d, -s)" \
- && set -xe \
- && java -jar "$JETTY_HOME/start.jar" --add-to-startd="$modules" \
- && chown -R jetty:jetty "$JETTY_BASE" \
- && rm -rf /tmp/hsperfdata_root
+COPY --from=Jetty94 $JETTY_HOME $JETTY_HOME
+COPY --from=Jetty94 $JETTY_BASE $JETTY_BASE
-ENV TMPDIR /tmp/jetty
RUN set -xe \
&& mkdir -p "$TMPDIR" \
- && chown -R jetty:jetty "$TMPDIR"
+ && groupadd -r jetty && useradd -r -g jetty jetty \
+ && chown -R jetty:jetty "$JETTY_HOME" "$JETTY_BASE" "$TMPDIR" \
+ && rm -rf /tmp/hsperfdata_root
+WORKDIR $JETTY_BASE
COPY docker-entrypoint.sh generate-jetty-start.sh /
USER jetty
diff --git a/jetty_9.3-jre8/docker-entrypoint.sh b/jetty_9.3-jre8/docker-entrypoint.sh
index cd8f821..41ccbe4 100755
--- a/jetty_9.3-jre8/docker-entrypoint.sh
+++ b/jetty_9.3-jre8/docker-entrypoint.sh
@@ -59,7 +59,9 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
--version |\
-v )\
# It is a terminating command, so exec directly
- exec "$@"
+ JAVA="$1"
+ shift
+ exec $JAVA $JAVA_OPTIONS "$@"
esac
done
@@ -88,7 +90,9 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
set -- $(cat $JETTY_START)
else
# Do a jetty dry run to set the final command
- "$@" --dry-run > $JETTY_START
+ JAVA="$1"
+ shift
+ $JAVA $JAVA_OPTIONS "$@" --dry-run > $JETTY_START
if [ $(egrep -v '\\$' $JETTY_START | wc -l ) -gt 1 ] ; then
# command was more than a dry-run
cat $JETTY_START \
@@ -96,14 +100,14 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
| egrep -v '[^ ]*java .* org\.eclipse\.jetty\.xml\.XmlConfiguration '
exit
fi
- set -- $(sed 's/\\$//' $JETTY_START)
+ set -- $(sed -e 's/ -Djava.io.tmpdir=[^ ]*//g' -e 's/\\$//' $JETTY_START)
fi
fi
if [ "${1##*/}" = java -a -n "$JAVA_OPTIONS" ] ; then
- java="$1"
+ JAVA="$1"
shift
- set -- "$java" $JAVA_OPTIONS "$@"
+ set -- "$JAVA" $JAVA_OPTIONS "$@"
fi
exec "$@"
diff --git a/jetty_9.3-jre8/generate-jetty-start.sh b/jetty_9.3-jre8/generate-jetty-start.sh
index de78102..5895278 100755
--- a/jetty_9.3-jre8/generate-jetty-start.sh
+++ b/jetty_9.3-jre8/generate-jetty-start.sh
@@ -4,4 +4,4 @@ if [ -z "$JETTY_START" ] ; then
JETTY_START=$JETTY_BASE/jetty.start
fi
rm -f $JETTY_START
-/docker-entrypoint.sh --dry-run | sed 's/\\$//' > $JETTY_START
+/docker-entrypoint.sh --dry-run | sed -e 's/ -Djava.io.tmpdir=[^ ]*//g' -e 's/\\$//' > $JETTY_START
diff --git a/jetty_jre8-alpine/Dockerfile b/jetty_jdk13/Dockerfile
similarity index 43%
rename from jetty_jre8-alpine/Dockerfile
rename to jetty_jdk13/Dockerfile
index 0693965..ab769aa 100644
--- a/jetty_jre8-alpine/Dockerfile
+++ b/jetty_jdk13/Dockerfile
@@ -1,14 +1,11 @@
-FROM openjdk:8-jre-alpine
-
-# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added
-RUN addgroup -S jetty && adduser -D -S -H -G jetty jetty && rm -rf /etc/group- /etc/passwd- /etc/shadow-
+# DO NOT EDIT. Edit Dockerfile-9.4 and use update.sh
+FROM openjdk:13-jdk
+ENV JETTY_VERSION 9.4.24.v20191120
ENV JETTY_HOME /usr/local/jetty
+ENV JETTY_BASE /var/lib/jetty
+ENV TMPDIR /tmp/jetty
ENV PATH $JETTY_HOME/bin:$PATH
-RUN mkdir -p "$JETTY_HOME"
-WORKDIR $JETTY_HOME
-
-ENV JETTY_VERSION 9.4.18.v20190429
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)
@@ -30,43 +27,55 @@ ENV JETTY_GPG_KEYS \
# Greg Wilkins <gregw@webtide.com>
5C9579B3DB2E506429319AAEF33B071B29559E1E
-RUN set -xe \
- # Install required packages for build time. Will be removed when build finishes.
- && apk add --no-cache --virtual .build-deps gnupg curl \
- \
- && curl -SL "$JETTY_TGZ_URL" -o jetty.tar.gz \
- && curl -SL "$JETTY_TGZ_URL.asc" -o jetty.tar.gz.asc \
- && export GNUPGHOME="$(mktemp -d)" \
- && for key in $JETTY_GPG_KEYS; do \
- gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; done \
- && gpg --batch --verify jetty.tar.gz.asc jetty.tar.gz \
- && gpgconf --kill all \
- && rm -rf "$GNUPGHOME" \
- && tar -xvzf jetty.tar.gz \
- && mv jetty-home-$JETTY_VERSION/* ./ \
- && sed -i '/jetty-logging/d' etc/jetty.conf \
- && rm jetty.tar.gz* \
- && rm -fr jetty-home-$JETTY_VERSION/ \
- \
- # Remove installed packages and various cleanup
- && apk del .build-deps \
- && rm -fr .build-deps \
- && rm -rf /tmp/hsperfdata_root
+RUN set -xe ; \
+ # fetch GPG keys
+ export GNUPGHOME=/jetty-keys ; \
+ mkdir -p "$GNUPGHOME" ; \
+ for key in $JETTY_GPG_KEYS; do \
+ for server in \
+ ha.pool.sks-keyservers.net \
+ p80.pool.sks-keyservers.net:80 \
+ ipv4.pool.sks-keyservers.net \
+ pgp.mit.edu ; \
+ do \
+ if gpg --batch --keyserver "$server" --recv-keys "$key"; then \
+ break; \
+ fi; \
+ done; \
+ 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" ; \
+ mkdir -p "$TMPDIR" ; \
+ groupadd -r jetty && useradd -r -g jetty jetty ; \
+ chown -R jetty:jetty "$JETTY_HOME" "$JETTY_BASE" "$TMPDIR" ; \
+ #
+ # 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 ;
-ENV JETTY_BASE /var/lib/jetty
-RUN mkdir -p "$JETTY_BASE"
WORKDIR $JETTY_BASE
-
-RUN set -xe \
- && java -jar "$JETTY_HOME/start.jar" --create-startd --add-to-start="server,http,deploy,jsp,jstl,ext,resources,websocket" \
- && chown -R jetty:jetty "$JETTY_BASE" \
- && rm -rf /tmp/hsperfdata_root
-
-ENV TMPDIR /tmp/jetty
-RUN set -xe \
- && mkdir -p "$TMPDIR" \
- && chown -R jetty:jetty "$TMPDIR"
-
COPY docker-entrypoint.sh generate-jetty-start.sh /
USER jetty
diff --git a/jetty_9-jre11/docker-entrypoint.sh b/jetty_jdk13/docker-entrypoint.sh
similarity index 92%
copy from jetty_9-jre11/docker-entrypoint.sh
copy to jetty_jdk13/docker-entrypoint.sh
index cd8f821..41ccbe4 100755
--- a/jetty_9-jre11/docker-entrypoint.sh
+++ b/jetty_jdk13/docker-entrypoint.sh
@@ -59,7 +59,9 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
--version |\
-v )\
# It is a terminating command, so exec directly
- exec "$@"
+ JAVA="$1"
+ shift
+ exec $JAVA $JAVA_OPTIONS "$@"
esac
done
@@ -88,7 +90,9 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
set -- $(cat $JETTY_START)
else
# Do a jetty dry run to set the final command
- "$@" --dry-run > $JETTY_START
+ JAVA="$1"
+ shift
+ $JAVA $JAVA_OPTIONS "$@" --dry-run > $JETTY_START
if [ $(egrep -v '\\$' $JETTY_START | wc -l ) -gt 1 ] ; then
# command was more than a dry-run
cat $JETTY_START \
@@ -96,14 +100,14 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
| egrep -v '[^ ]*java .* org\.eclipse\.jetty\.xml\.XmlConfiguration '
exit
fi
- set -- $(sed 's/\\$//' $JETTY_START)
+ set -- $(sed -e 's/ -Djava.io.tmpdir=[^ ]*//g' -e 's/\\$//' $JETTY_START)
fi
fi
if [ "${1##*/}" = java -a -n "$JAVA_OPTIONS" ] ; then
- java="$1"
+ JAVA="$1"
shift
- set -- "$java" $JAVA_OPTIONS "$@"
+ set -- "$JAVA" $JAVA_OPTIONS "$@"
fi
exec "$@"
diff --git a/jetty_9-jre11/generate-jetty-start.sh b/jetty_jdk13/generate-jetty-start.sh
similarity index 50%
copy from jetty_9-jre11/generate-jetty-start.sh
copy to jetty_jdk13/generate-jetty-start.sh
index de78102..5895278 100755
--- a/jetty_9-jre11/generate-jetty-start.sh
+++ b/jetty_jdk13/generate-jetty-start.sh
@@ -4,4 +4,4 @@ if [ -z "$JETTY_START" ] ; then
JETTY_START=$JETTY_BASE/jetty.start
fi
rm -f $JETTY_START
-/docker-entrypoint.sh --dry-run | sed 's/\\$//' > $JETTY_START
+/docker-entrypoint.sh --dry-run | sed -e 's/ -Djava.io.tmpdir=[^ ]*//g' -e 's/\\$//' > $JETTY_START
diff --git a/jetty_jre7/Dockerfile b/jetty_jre7/Dockerfile
deleted file mode 100644
index 20bad62..0000000
diff --git a/jetty_jre7/docker-entrypoint.sh b/jetty_jre7/docker-entrypoint.sh
deleted file mode 100755
index cd8f821..0000000
diff --git a/jetty_jre7/generate-jetty-start.sh b/jetty_jre7/generate-jetty-start.sh
deleted file mode 100755
index de78102..0000000
diff --git a/jetty_jre8-alpine/docker-entrypoint.sh b/jetty_jre8-alpine/docker-entrypoint.sh
deleted file mode 100755
index cd8f821..0000000
diff --git a/jetty_jre8-alpine/generate-jetty-start.sh b/jetty_jre8-alpine/generate-jetty-start.sh
deleted file mode 100755
index de78102..0000000
diff --git a/jetty_jre8/docker-entrypoint.sh b/jetty_jre8/docker-entrypoint.sh
deleted file mode 100755
index cd8f821..0000000
diff --git a/jetty_jre8/generate-jetty-start.sh b/jetty_jre8/generate-jetty-start.sh
deleted file mode 100755
index de78102..0000000 |
9.4 images look fine now, but 9.2 and 9.3 are still using a multistage build. Maybe they can all use the same templates? At least the |
I really could use newer jetty image |
@kamkie we have a 9.4.26 release coming out in the next few days. I will make sure the changes requested here are made by then so we can update straight to that |
@yosifkit can you look at appropriate/docker-jetty#128 and check if that is good? If so, I'll update this PR to use that once merged. |
Signed-off-by: Greg Wilkins <gregw@webtide.com>
Diff:diff --git a/_bashbrew-arches b/_bashbrew-arches
index 6e812ba..9aff876 100644
--- a/_bashbrew-arches
+++ b/_bashbrew-arches
@@ -1,44 +1,9 @@
+jetty:9-jdk13-slim @ amd64
+jetty:9-jre8 @ amd64
jetty:9-jre11 @ amd64
-jetty:9-jre11 @ arm32v5
-jetty:9-jre11 @ arm32v7
jetty:9-jre11 @ arm64v8
-jetty:9-jre11 @ i386
-jetty:9-jre11 @ ppc64le
-jetty:9-jre11 @ s390x
+jetty:9-jre11-slim @ amd64
+jetty:9-jre11-slim @ arm64v8
jetty:9.2-jre8 @ amd64
-jetty:9.2-jre8 @ arm32v5
-jetty:9.2-jre8 @ arm32v7
-jetty:9.2-jre8 @ arm64v8
-jetty:9.2-jre8 @ i386
-jetty:9.2-jre8 @ ppc64le
-jetty:9.2-jre8 @ s390x
jetty:9.3-jre8 @ amd64
-jetty:9.3-jre8 @ arm32v5
-jetty:9.3-jre8 @ arm32v7
-jetty:9.3-jre8 @ arm64v8
-jetty:9.3-jre8 @ i386
-jetty:9.3-jre8 @ ppc64le
-jetty:9.3-jre8 @ s390x
-jetty:9.3-jre8-alpine @ amd64
-jetty:9.3-jre8-alpine @ arm32v6
-jetty:9.3-jre8-alpine @ arm64v8
-jetty:9.3-jre8-alpine @ i386
-jetty:9.3-jre8-alpine @ ppc64le
-jetty:9.3-jre8-alpine @ s390x
-jetty:jre7 @ amd64
-jetty:jre7 @ arm32v5
-jetty:jre7 @ arm32v7
-jetty:jre7 @ i386
-jetty:jre8 @ amd64
-jetty:jre8 @ arm32v5
-jetty:jre8 @ arm32v7
-jetty:jre8 @ arm64v8
-jetty:jre8 @ i386
-jetty:jre8 @ ppc64le
-jetty:jre8 @ s390x
-jetty:jre8-alpine @ amd64
-jetty:jre8-alpine @ arm32v6
-jetty:jre8-alpine @ arm64v8
-jetty:jre8-alpine @ i386
-jetty:jre8-alpine @ ppc64le
-jetty:jre8-alpine @ s390x
+jetty:jdk13 @ amd64
diff --git a/_bashbrew-list b/_bashbrew-list
index 6e2cb87..ec8f1ae 100644
--- a/_bashbrew-list
+++ b/_bashbrew-list
@@ -1,35 +1,24 @@
jetty:9
-jetty:9-alpine
-jetty:9-jre7
+jetty:9-jdk13
+jetty:9-jdk13-slim
jetty:9-jre8
-jetty:9-jre8-alpine
jetty:9-jre11
-jetty:9.2
-jetty:9.2-jre7
+jetty:9-jre11-slim
jetty:9.2-jre8
-jetty:9.2.28
-jetty:9.2.28-jre7
-jetty:9.2.28-jre8
-jetty:9.3
-jetty:9.3-alpine
+jetty:9.2.29-jre8
jetty:9.3-jre8
-jetty:9.3-jre8-alpine
-jetty:9.3.27
-jetty:9.3.27-alpine
-jetty:9.3.27-jre8
-jetty:9.3.27-jre8-alpine
+jetty:9.3.28-jre8
jetty:9.4
-jetty:9.4-alpine
+jetty:9.4-jdk13
+jetty:9.4-jdk13-slim
jetty:9.4-jre8
-jetty:9.4-jre8-alpine
jetty:9.4-jre11
-jetty:9.4.18
-jetty:9.4.18-alpine
-jetty:9.4.18-jre8
-jetty:9.4.18-jre8-alpine
-jetty:9.4.18-jre11
-jetty:alpine
-jetty:jre7
-jetty:jre8
-jetty:jre8-alpine
+jetty:9.4-jre11-slim
+jetty:9.4.26
+jetty:9.4.26-jdk13
+jetty:9.4.26-jdk13-slim
+jetty:9.4.26-jre8
+jetty:9.4.26-jre11
+jetty:9.4.26-jre11-slim
+jetty:jdk13
jetty:latest
diff --git a/jetty_jre8-alpine/Dockerfile b/jetty_9-jdk13-slim/Dockerfile
similarity index 36%
copy from jetty_jre8-alpine/Dockerfile
copy to jetty_9-jdk13-slim/Dockerfile
index 0693965..68b8e7a 100644
--- a/jetty_jre8-alpine/Dockerfile
+++ b/jetty_9-jdk13-slim/Dockerfile
@@ -1,14 +1,11 @@
-FROM openjdk:8-jre-alpine
-
-# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added
-RUN addgroup -S jetty && adduser -D -S -H -G jetty jetty && rm -rf /etc/group- /etc/passwd- /etc/shadow-
+# DO NOT EDIT. Edit Dockerfile-9.4 and use update.sh
+FROM openjdk:13-jdk-slim
+ENV JETTY_VERSION 9.4.26.v20200117
ENV JETTY_HOME /usr/local/jetty
+ENV JETTY_BASE /var/lib/jetty
+ENV TMPDIR /tmp/jetty
ENV PATH $JETTY_HOME/bin:$PATH
-RUN mkdir -p "$JETTY_HOME"
-WORKDIR $JETTY_HOME
-
-ENV JETTY_VERSION 9.4.18.v20190429
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)
@@ -30,43 +27,72 @@ ENV JETTY_GPG_KEYS \
# Greg Wilkins <gregw@webtide.com>
5C9579B3DB2E506429319AAEF33B071B29559E1E
-RUN set -xe \
- # Install required packages for build time. Will be removed when build finishes.
- && apk add --no-cache --virtual .build-deps gnupg curl \
- \
- && curl -SL "$JETTY_TGZ_URL" -o jetty.tar.gz \
- && curl -SL "$JETTY_TGZ_URL.asc" -o jetty.tar.gz.asc \
- && export GNUPGHOME="$(mktemp -d)" \
- && for key in $JETTY_GPG_KEYS; do \
- gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; done \
- && gpg --batch --verify jetty.tar.gz.asc jetty.tar.gz \
- && gpgconf --kill all \
- && rm -rf "$GNUPGHOME" \
- && tar -xvzf jetty.tar.gz \
- && mv jetty-home-$JETTY_VERSION/* ./ \
- && sed -i '/jetty-logging/d' etc/jetty.conf \
- && rm jetty.tar.gz* \
- && rm -fr jetty-home-$JETTY_VERSION/ \
- \
- # Remove installed packages and various cleanup
- && apk del .build-deps \
- && rm -fr .build-deps \
- && rm -rf /tmp/hsperfdata_root
+RUN set -xe ; \
+ # Save initial installatin state
+ export savedAptMark="$(apt-mark showmanual)" ; \
+ #
+ # 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 \
+ for server in \
+ ha.pool.sks-keyservers.net \
+ p80.pool.sks-keyservers.net:80 \
+ ipv4.pool.sks-keyservers.net \
+ pgp.mit.edu ; \
+ do \
+ if gpg --batch --keyserver "$server" --recv-keys "$key"; then \
+ break; \
+ fi; \
+ done; \
+ 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" ; \
+ mkdir -p "$TMPDIR" ; \
+ groupadd -r jetty && useradd -r -g jetty jetty ; \
+ chown -R jetty:jetty "$JETTY_HOME" "$JETTY_BASE" "$TMPDIR" ; \
+ #
+ # 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 ;
-ENV JETTY_BASE /var/lib/jetty
-RUN mkdir -p "$JETTY_BASE"
WORKDIR $JETTY_BASE
-
-RUN set -xe \
- && java -jar "$JETTY_HOME/start.jar" --create-startd --add-to-start="server,http,deploy,jsp,jstl,ext,resources,websocket" \
- && chown -R jetty:jetty "$JETTY_BASE" \
- && rm -rf /tmp/hsperfdata_root
-
-ENV TMPDIR /tmp/jetty
-RUN set -xe \
- && mkdir -p "$TMPDIR" \
- && chown -R jetty:jetty "$TMPDIR"
-
COPY docker-entrypoint.sh generate-jetty-start.sh /
USER jetty
diff --git a/jetty_9.3-jre8-alpine/docker-entrypoint.sh b/jetty_9-jdk13-slim/docker-entrypoint.sh
similarity index 92%
rename from jetty_9.3-jre8-alpine/docker-entrypoint.sh
rename to jetty_9-jdk13-slim/docker-entrypoint.sh
index cd8f821..41ccbe4 100755
--- a/jetty_9.3-jre8-alpine/docker-entrypoint.sh
+++ b/jetty_9-jdk13-slim/docker-entrypoint.sh
@@ -59,7 +59,9 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
--version |\
-v )\
# It is a terminating command, so exec directly
- exec "$@"
+ JAVA="$1"
+ shift
+ exec $JAVA $JAVA_OPTIONS "$@"
esac
done
@@ -88,7 +90,9 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
set -- $(cat $JETTY_START)
else
# Do a jetty dry run to set the final command
- "$@" --dry-run > $JETTY_START
+ JAVA="$1"
+ shift
+ $JAVA $JAVA_OPTIONS "$@" --dry-run > $JETTY_START
if [ $(egrep -v '\\$' $JETTY_START | wc -l ) -gt 1 ] ; then
# command was more than a dry-run
cat $JETTY_START \
@@ -96,14 +100,14 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
| egrep -v '[^ ]*java .* org\.eclipse\.jetty\.xml\.XmlConfiguration '
exit
fi
- set -- $(sed 's/\\$//' $JETTY_START)
+ set -- $(sed -e 's/ -Djava.io.tmpdir=[^ ]*//g' -e 's/\\$//' $JETTY_START)
fi
fi
if [ "${1##*/}" = java -a -n "$JAVA_OPTIONS" ] ; then
- java="$1"
+ JAVA="$1"
shift
- set -- "$java" $JAVA_OPTIONS "$@"
+ set -- "$JAVA" $JAVA_OPTIONS "$@"
fi
exec "$@"
diff --git a/jetty_9.3-jre8-alpine/generate-jetty-start.sh b/jetty_9-jdk13-slim/generate-jetty-start.sh
similarity index 50%
rename from jetty_9.3-jre8-alpine/generate-jetty-start.sh
rename to jetty_9-jdk13-slim/generate-jetty-start.sh
index de78102..5895278 100755
--- a/jetty_9.3-jre8-alpine/generate-jetty-start.sh
+++ b/jetty_9-jdk13-slim/generate-jetty-start.sh
@@ -4,4 +4,4 @@ if [ -z "$JETTY_START" ] ; then
JETTY_START=$JETTY_BASE/jetty.start
fi
rm -f $JETTY_START
-/docker-entrypoint.sh --dry-run | sed 's/\\$//' > $JETTY_START
+/docker-entrypoint.sh --dry-run | sed -e 's/ -Djava.io.tmpdir=[^ ]*//g' -e 's/\\$//' > $JETTY_START
diff --git a/jetty_jre8-alpine/Dockerfile b/jetty_9-jre11-slim/Dockerfile
similarity index 36%
copy from jetty_jre8-alpine/Dockerfile
copy to jetty_9-jre11-slim/Dockerfile
index 0693965..8fabea3 100644
--- a/jetty_jre8-alpine/Dockerfile
+++ b/jetty_9-jre11-slim/Dockerfile
@@ -1,14 +1,11 @@
-FROM openjdk:8-jre-alpine
-
-# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added
-RUN addgroup -S jetty && adduser -D -S -H -G jetty jetty && rm -rf /etc/group- /etc/passwd- /etc/shadow-
+# DO NOT EDIT. Edit Dockerfile-9.4 and use update.sh
+FROM openjdk:11-jre-slim
+ENV JETTY_VERSION 9.4.26.v20200117
ENV JETTY_HOME /usr/local/jetty
+ENV JETTY_BASE /var/lib/jetty
+ENV TMPDIR /tmp/jetty
ENV PATH $JETTY_HOME/bin:$PATH
-RUN mkdir -p "$JETTY_HOME"
-WORKDIR $JETTY_HOME
-
-ENV JETTY_VERSION 9.4.18.v20190429
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)
@@ -30,43 +27,72 @@ ENV JETTY_GPG_KEYS \
# Greg Wilkins <gregw@webtide.com>
5C9579B3DB2E506429319AAEF33B071B29559E1E
-RUN set -xe \
- # Install required packages for build time. Will be removed when build finishes.
- && apk add --no-cache --virtual .build-deps gnupg curl \
- \
- && curl -SL "$JETTY_TGZ_URL" -o jetty.tar.gz \
- && curl -SL "$JETTY_TGZ_URL.asc" -o jetty.tar.gz.asc \
- && export GNUPGHOME="$(mktemp -d)" \
- && for key in $JETTY_GPG_KEYS; do \
- gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; done \
- && gpg --batch --verify jetty.tar.gz.asc jetty.tar.gz \
- && gpgconf --kill all \
- && rm -rf "$GNUPGHOME" \
- && tar -xvzf jetty.tar.gz \
- && mv jetty-home-$JETTY_VERSION/* ./ \
- && sed -i '/jetty-logging/d' etc/jetty.conf \
- && rm jetty.tar.gz* \
- && rm -fr jetty-home-$JETTY_VERSION/ \
- \
- # Remove installed packages and various cleanup
- && apk del .build-deps \
- && rm -fr .build-deps \
- && rm -rf /tmp/hsperfdata_root
+RUN set -xe ; \
+ # Save initial installatin state
+ export savedAptMark="$(apt-mark showmanual)" ; \
+ #
+ # 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 \
+ for server in \
+ ha.pool.sks-keyservers.net \
+ p80.pool.sks-keyservers.net:80 \
+ ipv4.pool.sks-keyservers.net \
+ pgp.mit.edu ; \
+ do \
+ if gpg --batch --keyserver "$server" --recv-keys "$key"; then \
+ break; \
+ fi; \
+ done; \
+ 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" ; \
+ mkdir -p "$TMPDIR" ; \
+ groupadd -r jetty && useradd -r -g jetty jetty ; \
+ chown -R jetty:jetty "$JETTY_HOME" "$JETTY_BASE" "$TMPDIR" ; \
+ #
+ # 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 ;
-ENV JETTY_BASE /var/lib/jetty
-RUN mkdir -p "$JETTY_BASE"
WORKDIR $JETTY_BASE
-
-RUN set -xe \
- && java -jar "$JETTY_HOME/start.jar" --create-startd --add-to-start="server,http,deploy,jsp,jstl,ext,resources,websocket" \
- && chown -R jetty:jetty "$JETTY_BASE" \
- && rm -rf /tmp/hsperfdata_root
-
-ENV TMPDIR /tmp/jetty
-RUN set -xe \
- && mkdir -p "$TMPDIR" \
- && chown -R jetty:jetty "$TMPDIR"
-
COPY docker-entrypoint.sh generate-jetty-start.sh /
USER jetty
diff --git a/jetty_9-jre11/docker-entrypoint.sh b/jetty_9-jre11-slim/docker-entrypoint.sh
similarity index 92%
copy from jetty_9-jre11/docker-entrypoint.sh
copy to jetty_9-jre11-slim/docker-entrypoint.sh
index cd8f821..41ccbe4 100755
--- a/jetty_9-jre11/docker-entrypoint.sh
+++ b/jetty_9-jre11-slim/docker-entrypoint.sh
@@ -59,7 +59,9 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
--version |\
-v )\
# It is a terminating command, so exec directly
- exec "$@"
+ JAVA="$1"
+ shift
+ exec $JAVA $JAVA_OPTIONS "$@"
esac
done
@@ -88,7 +90,9 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
set -- $(cat $JETTY_START)
else
# Do a jetty dry run to set the final command
- "$@" --dry-run > $JETTY_START
+ JAVA="$1"
+ shift
+ $JAVA $JAVA_OPTIONS "$@" --dry-run > $JETTY_START
if [ $(egrep -v '\\$' $JETTY_START | wc -l ) -gt 1 ] ; then
# command was more than a dry-run
cat $JETTY_START \
@@ -96,14 +100,14 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
| egrep -v '[^ ]*java .* org\.eclipse\.jetty\.xml\.XmlConfiguration '
exit
fi
- set -- $(sed 's/\\$//' $JETTY_START)
+ set -- $(sed -e 's/ -Djava.io.tmpdir=[^ ]*//g' -e 's/\\$//' $JETTY_START)
fi
fi
if [ "${1##*/}" = java -a -n "$JAVA_OPTIONS" ] ; then
- java="$1"
+ JAVA="$1"
shift
- set -- "$java" $JAVA_OPTIONS "$@"
+ set -- "$JAVA" $JAVA_OPTIONS "$@"
fi
exec "$@"
diff --git a/jetty_9-jre11/generate-jetty-start.sh b/jetty_9-jre11-slim/generate-jetty-start.sh
similarity index 50%
copy from jetty_9-jre11/generate-jetty-start.sh
copy to jetty_9-jre11-slim/generate-jetty-start.sh
index de78102..5895278 100755
--- a/jetty_9-jre11/generate-jetty-start.sh
+++ b/jetty_9-jre11-slim/generate-jetty-start.sh
@@ -4,4 +4,4 @@ if [ -z "$JETTY_START" ] ; then
JETTY_START=$JETTY_BASE/jetty.start
fi
rm -f $JETTY_START
-/docker-entrypoint.sh --dry-run | sed 's/\\$//' > $JETTY_START
+/docker-entrypoint.sh --dry-run | sed -e 's/ -Djava.io.tmpdir=[^ ]*//g' -e 's/\\$//' > $JETTY_START
diff --git a/jetty_9-jre11/Dockerfile b/jetty_9-jre11/Dockerfile
index 5e0fefe..f56d4cd 100644
--- a/jetty_9-jre11/Dockerfile
+++ b/jetty_9-jre11/Dockerfile
@@ -1,14 +1,11 @@
+# DO NOT EDIT. Edit Dockerfile-9.4 and use update.sh
FROM openjdk:11-jre
-# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added
-RUN groupadd -r jetty && useradd -r -g jetty jetty
-
+ENV JETTY_VERSION 9.4.26.v20200117
ENV JETTY_HOME /usr/local/jetty
+ENV JETTY_BASE /var/lib/jetty
+ENV TMPDIR /tmp/jetty
ENV PATH $JETTY_HOME/bin:$PATH
-RUN mkdir -p "$JETTY_HOME"
-WORKDIR $JETTY_HOME
-
-ENV JETTY_VERSION 9.4.18.v20190429
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)
@@ -30,33 +27,55 @@ ENV JETTY_GPG_KEYS \
# Greg Wilkins <gregw@webtide.com>
5C9579B3DB2E506429319AAEF33B071B29559E1E
-RUN set -xe \
- && curl -SL "$JETTY_TGZ_URL" -o jetty.tar.gz \
- && curl -SL "$JETTY_TGZ_URL.asc" -o jetty.tar.gz.asc \
- && export GNUPGHOME="$(mktemp -d)" \
- && for key in $JETTY_GPG_KEYS; do \
- gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; done \
- && gpg --batch --verify jetty.tar.gz.asc jetty.tar.gz \
- && rm -rf "$GNUPGHOME" \
- && tar -xvf jetty.tar.gz --strip-components=1 \
- && sed -i '/jetty-logging/d' etc/jetty.conf \
- && rm jetty.tar.gz* \
- && rm -rf /tmp/hsperfdata_root
+RUN set -xe ; \
+ # fetch GPG keys
+ export GNUPGHOME=/jetty-keys ; \
+ mkdir -p "$GNUPGHOME" ; \
+ for key in $JETTY_GPG_KEYS; do \
+ for server in \
+ ha.pool.sks-keyservers.net \
+ p80.pool.sks-keyservers.net:80 \
+ ipv4.pool.sks-keyservers.net \
+ pgp.mit.edu ; \
+ do \
+ if gpg --batch --keyserver "$server" --recv-keys "$key"; then \
+ break; \
+ fi; \
+ done; \
+ 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" ; \
+ mkdir -p "$TMPDIR" ; \
+ groupadd -r jetty && useradd -r -g jetty jetty ; \
+ chown -R jetty:jetty "$JETTY_HOME" "$JETTY_BASE" "$TMPDIR" ; \
+ #
+ # 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 ;
-ENV JETTY_BASE /var/lib/jetty
-RUN mkdir -p "$JETTY_BASE"
WORKDIR $JETTY_BASE
-
-RUN set -xe \
- && java -jar "$JETTY_HOME/start.jar" --create-startd --add-to-start="server,http,deploy,jsp,jstl,ext,resources,websocket" \
- && chown -R jetty:jetty "$JETTY_BASE" \
- && rm -rf /tmp/hsperfdata_root
-
-ENV TMPDIR /tmp/jetty
-RUN set -xe \
- && mkdir -p "$TMPDIR" \
- && chown -R jetty:jetty "$TMPDIR"
-
COPY docker-entrypoint.sh generate-jetty-start.sh /
USER jetty
diff --git a/jetty_9-jre11/docker-entrypoint.sh b/jetty_9-jre11/docker-entrypoint.sh
index cd8f821..41ccbe4 100755
--- a/jetty_9-jre11/docker-entrypoint.sh
+++ b/jetty_9-jre11/docker-entrypoint.sh
@@ -59,7 +59,9 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
--version |\
-v )\
# It is a terminating command, so exec directly
- exec "$@"
+ JAVA="$1"
+ shift
+ exec $JAVA $JAVA_OPTIONS "$@"
esac
done
@@ -88,7 +90,9 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
set -- $(cat $JETTY_START)
else
# Do a jetty dry run to set the final command
- "$@" --dry-run > $JETTY_START
+ JAVA="$1"
+ shift
+ $JAVA $JAVA_OPTIONS "$@" --dry-run > $JETTY_START
if [ $(egrep -v '\\$' $JETTY_START | wc -l ) -gt 1 ] ; then
# command was more than a dry-run
cat $JETTY_START \
@@ -96,14 +100,14 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
| egrep -v '[^ ]*java .* org\.eclipse\.jetty\.xml\.XmlConfiguration '
exit
fi
- set -- $(sed 's/\\$//' $JETTY_START)
+ set -- $(sed -e 's/ -Djava.io.tmpdir=[^ ]*//g' -e 's/\\$//' $JETTY_START)
fi
fi
if [ "${1##*/}" = java -a -n "$JAVA_OPTIONS" ] ; then
- java="$1"
+ JAVA="$1"
shift
- set -- "$java" $JAVA_OPTIONS "$@"
+ set -- "$JAVA" $JAVA_OPTIONS "$@"
fi
exec "$@"
diff --git a/jetty_9-jre11/generate-jetty-start.sh b/jetty_9-jre11/generate-jetty-start.sh
index de78102..5895278 100755
--- a/jetty_9-jre11/generate-jetty-start.sh
+++ b/jetty_9-jre11/generate-jetty-start.sh
@@ -4,4 +4,4 @@ if [ -z "$JETTY_START" ] ; then
JETTY_START=$JETTY_BASE/jetty.start
fi
rm -f $JETTY_START
-/docker-entrypoint.sh --dry-run | sed 's/\\$//' > $JETTY_START
+/docker-entrypoint.sh --dry-run | sed -e 's/ -Djava.io.tmpdir=[^ ]*//g' -e 's/\\$//' > $JETTY_START
diff --git a/jetty_jre8/Dockerfile b/jetty_9-jre8/Dockerfile
similarity index 43%
rename from jetty_jre8/Dockerfile
rename to jetty_9-jre8/Dockerfile
index c356c98..b1b0968 100644
--- a/jetty_jre8/Dockerfile
+++ b/jetty_9-jre8/Dockerfile
@@ -1,14 +1,11 @@
+# DO NOT EDIT. Edit Dockerfile-9.4 and use update.sh
FROM openjdk:8-jre
-# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added
-RUN groupadd -r jetty && useradd -r -g jetty jetty
-
+ENV JETTY_VERSION 9.4.26.v20200117
ENV JETTY_HOME /usr/local/jetty
+ENV JETTY_BASE /var/lib/jetty
+ENV TMPDIR /tmp/jetty
ENV PATH $JETTY_HOME/bin:$PATH
-RUN mkdir -p "$JETTY_HOME"
-WORKDIR $JETTY_HOME
-
-ENV JETTY_VERSION 9.4.18.v20190429
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)
@@ -30,34 +27,55 @@ ENV JETTY_GPG_KEYS \
# Greg Wilkins <gregw@webtide.com>
5C9579B3DB2E506429319AAEF33B071B29559E1E
-RUN set -xe \
- && curl -SL "$JETTY_TGZ_URL" -o jetty.tar.gz \
- && curl -SL "$JETTY_TGZ_URL.asc" -o jetty.tar.gz.asc \
- && export GNUPGHOME="$(mktemp -d)" \
- && for key in $JETTY_GPG_KEYS; do \
- gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; done \
- && gpg --batch --verify jetty.tar.gz.asc jetty.tar.gz \
- && gpgconf --kill all \
- && rm -rf "$GNUPGHOME" \
- && tar -xvf jetty.tar.gz --strip-components=1 \
- && sed -i '/jetty-logging/d' etc/jetty.conf \
- && rm jetty.tar.gz* \
- && rm -rf /tmp/hsperfdata_root
+RUN set -xe ; \
+ # fetch GPG keys
+ export GNUPGHOME=/jetty-keys ; \
+ mkdir -p "$GNUPGHOME" ; \
+ for key in $JETTY_GPG_KEYS; do \
+ for server in \
+ ha.pool.sks-keyservers.net \
+ p80.pool.sks-keyservers.net:80 \
+ ipv4.pool.sks-keyservers.net \
+ pgp.mit.edu ; \
+ do \
+ if gpg --batch --keyserver "$server" --recv-keys "$key"; then \
+ break; \
+ fi; \
+ done; \
+ 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" ; \
+ mkdir -p "$TMPDIR" ; \
+ groupadd -r jetty && useradd -r -g jetty jetty ; \
+ chown -R jetty:jetty "$JETTY_HOME" "$JETTY_BASE" "$TMPDIR" ; \
+ #
+ # 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 ;
-ENV JETTY_BASE /var/lib/jetty
-RUN mkdir -p "$JETTY_BASE"
WORKDIR $JETTY_BASE
-
-RUN set -xe \
- && java -jar "$JETTY_HOME/start.jar" --create-startd --add-to-start="server,http,deploy,jsp,jstl,ext,resources,websocket" \
- && chown -R jetty:jetty "$JETTY_BASE" \
- && rm -rf /tmp/hsperfdata_root
-
-ENV TMPDIR /tmp/jetty
-RUN set -xe \
- && mkdir -p "$TMPDIR" \
- && chown -R jetty:jetty "$TMPDIR"
-
COPY docker-entrypoint.sh generate-jetty-start.sh /
USER jetty
diff --git a/jetty_9-jre11/docker-entrypoint.sh b/jetty_9-jre8/docker-entrypoint.sh
similarity index 92%
copy from jetty_9-jre11/docker-entrypoint.sh
copy to jetty_9-jre8/docker-entrypoint.sh
index cd8f821..41ccbe4 100755
--- a/jetty_9-jre11/docker-entrypoint.sh
+++ b/jetty_9-jre8/docker-entrypoint.sh
@@ -59,7 +59,9 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
--version |\
-v )\
# It is a terminating command, so exec directly
- exec "$@"
+ JAVA="$1"
+ shift
+ exec $JAVA $JAVA_OPTIONS "$@"
esac
done
@@ -88,7 +90,9 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
set -- $(cat $JETTY_START)
else
# Do a jetty dry run to set the final command
- "$@" --dry-run > $JETTY_START
+ JAVA="$1"
+ shift
+ $JAVA $JAVA_OPTIONS "$@" --dry-run > $JETTY_START
if [ $(egrep -v '\\$' $JETTY_START | wc -l ) -gt 1 ] ; then
# command was more than a dry-run
cat $JETTY_START \
@@ -96,14 +100,14 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
| egrep -v '[^ ]*java .* org\.eclipse\.jetty\.xml\.XmlConfiguration '
exit
fi
- set -- $(sed 's/\\$//' $JETTY_START)
+ set -- $(sed -e 's/ -Djava.io.tmpdir=[^ ]*//g' -e 's/\\$//' $JETTY_START)
fi
fi
if [ "${1##*/}" = java -a -n "$JAVA_OPTIONS" ] ; then
- java="$1"
+ JAVA="$1"
shift
- set -- "$java" $JAVA_OPTIONS "$@"
+ set -- "$JAVA" $JAVA_OPTIONS "$@"
fi
exec "$@"
diff --git a/jetty_9-jre11/generate-jetty-start.sh b/jetty_9-jre8/generate-jetty-start.sh
similarity index 50%
copy from jetty_9-jre11/generate-jetty-start.sh
copy to jetty_9-jre8/generate-jetty-start.sh
index de78102..5895278 100755
--- a/jetty_9-jre11/generate-jetty-start.sh
+++ b/jetty_9-jre8/generate-jetty-start.sh
@@ -4,4 +4,4 @@ if [ -z "$JETTY_START" ] ; then
JETTY_START=$JETTY_BASE/jetty.start
fi
rm -f $JETTY_START
-/docker-entrypoint.sh --dry-run | sed 's/\\$//' > $JETTY_START
+/docker-entrypoint.sh --dry-run | sed -e 's/ -Djava.io.tmpdir=[^ ]*//g' -e 's/\\$//' > $JETTY_START
diff --git a/jetty_9.2-jre8/Dockerfile b/jetty_9.2-jre8/Dockerfile
index c9620d5..10cfeb4 100644
--- a/jetty_9.2-jre8/Dockerfile
+++ b/jetty_9.2-jre8/Dockerfile
@@ -1,14 +1,10 @@
FROM openjdk:8-jre
-# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added
-RUN groupadd -r jetty && useradd -r -g jetty jetty
-
+ENV JETTY_VERSION 9.2.29.v20191105
ENV JETTY_HOME /usr/local/jetty
+ENV JETTY_BASE /var/lib/jetty
+ENV TMPDIR /tmp/jetty
ENV PATH $JETTY_HOME/bin:$PATH
-RUN mkdir -p "$JETTY_HOME"
-WORKDIR $JETTY_HOME
-
-ENV JETTY_VERSION 9.2.28.v20190418
ENV JETTY_TGZ_URL https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-distribution/$JETTY_VERSION/jetty-distribution-$JETTY_VERSION.tar.gz
# GPG Keys are personal keys of Jetty committers (see https://github.com/eclipse/jetty.project/blob/0607c0e66e44b9c12a62b85551da3a0edce0281e/KEYS.txt)
@@ -31,36 +27,38 @@ ENV JETTY_GPG_KEYS \
5C9579B3DB2E506429319AAEF33B071B29559E1E
RUN set -xe \
+ && mkdir /jetty-keys \
+ && export GNUPGHOME=/jetty-keys; \
+ for key in $JETTY_GPG_KEYS; do \
+ for server in \
+ ha.pool.sks-keyservers.net \
+ p80.pool.sks-keyservers.net:80 \
+ ipv4.pool.sks-keyservers.net \
+ pgp.mit.edu ; \
+ do \
+ if gpg --batch --keyserver "$server" --recv-keys "$key"; then \
+ break; \
+ fi; \
+ done; \
+ done \
+ && 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 \
- && export GNUPGHOME="$(mktemp -d)" \
- && for key in $JETTY_GPG_KEYS; do \
- gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; done \
&& gpg --batch --verify jetty.tar.gz.asc jetty.tar.gz \
- && gpgconf --kill all \
- && rm -rf "$GNUPGHOME" \
&& tar -xvf jetty.tar.gz --strip-components=1 \
&& sed -i '/jetty-logging/d' etc/jetty.conf \
- && rm -fr demo-base javadoc \
- && rm jetty.tar.gz* \
- && rm -rf /tmp/hsperfdata_root
-
-ENV JETTY_BASE /var/lib/jetty
-RUN mkdir -p "$JETTY_BASE"
-WORKDIR $JETTY_BASE
-
-# Get the list of modules in the default start.ini and build new base with those modules
-RUN modules="$(grep -- ^--module= "$JETTY_HOME/start.ini" | cut -d= -f2 | paste -d, -s)" \
- && set -xe \
+ && rm -fr jetty.tar.gz* \
+ && mkdir -p "$JETTY_BASE" \
+ && cd $JETTY_BASE \
+ && modules="$(grep -- ^--module= "$JETTY_HOME/start.ini" | cut -d= -f2 | paste -d, -s)" \
&& java -jar "$JETTY_HOME/start.jar" --add-to-startd="$modules" \
- && chown -R jetty:jetty "$JETTY_BASE" \
- && rm -rf /tmp/hsperfdata_root
-
-ENV TMPDIR /tmp/jetty
-RUN set -xe \
&& mkdir -p "$TMPDIR" \
- && chown -R jetty:jetty "$TMPDIR"
+ && groupadd -r jetty && useradd -r -g jetty jetty \
+ && chown -R jetty:jetty "$JETTY_HOME" "$JETTY_BASE" "$TMPDIR" \
+ && rm -rf /tmp/hsperfdata_root
+WORKDIR $JETTY_BASE
COPY docker-entrypoint.sh generate-jetty-start.sh /
USER jetty
diff --git a/jetty_9.2-jre8/docker-entrypoint.sh b/jetty_9.2-jre8/docker-entrypoint.sh
index cd8f821..41ccbe4 100755
--- a/jetty_9.2-jre8/docker-entrypoint.sh
+++ b/jetty_9.2-jre8/docker-entrypoint.sh
@@ -59,7 +59,9 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
--version |\
-v )\
# It is a terminating command, so exec directly
- exec "$@"
+ JAVA="$1"
+ shift
+ exec $JAVA $JAVA_OPTIONS "$@"
esac
done
@@ -88,7 +90,9 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
set -- $(cat $JETTY_START)
else
# Do a jetty dry run to set the final command
- "$@" --dry-run > $JETTY_START
+ JAVA="$1"
+ shift
+ $JAVA $JAVA_OPTIONS "$@" --dry-run > $JETTY_START
if [ $(egrep -v '\\$' $JETTY_START | wc -l ) -gt 1 ] ; then
# command was more than a dry-run
cat $JETTY_START \
@@ -96,14 +100,14 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
| egrep -v '[^ ]*java .* org\.eclipse\.jetty\.xml\.XmlConfiguration '
exit
fi
- set -- $(sed 's/\\$//' $JETTY_START)
+ set -- $(sed -e 's/ -Djava.io.tmpdir=[^ ]*//g' -e 's/\\$//' $JETTY_START)
fi
fi
if [ "${1##*/}" = java -a -n "$JAVA_OPTIONS" ] ; then
- java="$1"
+ JAVA="$1"
shift
- set -- "$java" $JAVA_OPTIONS "$@"
+ set -- "$JAVA" $JAVA_OPTIONS "$@"
fi
exec "$@"
diff --git a/jetty_9.2-jre8/generate-jetty-start.sh b/jetty_9.2-jre8/generate-jetty-start.sh
index de78102..5895278 100755
--- a/jetty_9.2-jre8/generate-jetty-start.sh
+++ b/jetty_9.2-jre8/generate-jetty-start.sh
@@ -4,4 +4,4 @@ if [ -z "$JETTY_START" ] ; then
JETTY_START=$JETTY_BASE/jetty.start
fi
rm -f $JETTY_START
-/docker-entrypoint.sh --dry-run | sed 's/\\$//' > $JETTY_START
+/docker-entrypoint.sh --dry-run | sed -e 's/ -Djava.io.tmpdir=[^ ]*//g' -e 's/\\$//' > $JETTY_START
diff --git a/jetty_9.3-jre8-alpine/Dockerfile b/jetty_9.3-jre8-alpine/Dockerfile
deleted file mode 100644
index f7f1bfa..0000000
diff --git a/jetty_9.3-jre8/Dockerfile b/jetty_9.3-jre8/Dockerfile
index 5160b66..1ff04d4 100644
--- a/jetty_9.3-jre8/Dockerfile
+++ b/jetty_9.3-jre8/Dockerfile
@@ -1,14 +1,10 @@
FROM openjdk:8-jre
-# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added
-RUN groupadd -r jetty && useradd -r -g jetty jetty
-
+ENV JETTY_VERSION 9.3.28.v20191105
ENV JETTY_HOME /usr/local/jetty
+ENV JETTY_BASE /var/lib/jetty
+ENV TMPDIR /tmp/jetty
ENV PATH $JETTY_HOME/bin:$PATH
-RUN mkdir -p "$JETTY_HOME"
-WORKDIR $JETTY_HOME
-
-ENV JETTY_VERSION 9.3.27.v20190418
ENV JETTY_TGZ_URL https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-distribution/$JETTY_VERSION/jetty-distribution-$JETTY_VERSION.tar.gz
# GPG Keys are personal keys of Jetty committers (see https://github.com/eclipse/jetty.project/blob/0607c0e66e44b9c12a62b85551da3a0edce0281e/KEYS.txt)
@@ -31,36 +27,38 @@ ENV JETTY_GPG_KEYS \
5C9579B3DB2E506429319AAEF33B071B29559E1E
RUN set -xe \
+ && mkdir /jetty-keys \
+ && export GNUPGHOME=/jetty-keys; \
+ for key in $JETTY_GPG_KEYS; do \
+ for server in \
+ ha.pool.sks-keyservers.net \
+ p80.pool.sks-keyservers.net:80 \
+ ipv4.pool.sks-keyservers.net \
+ pgp.mit.edu ; \
+ do \
+ if gpg --batch --keyserver "$server" --recv-keys "$key"; then \
+ break; \
+ fi; \
+ done; \
+ done \
+ && 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 \
- && export GNUPGHOME="$(mktemp -d)" \
- && for key in $JETTY_GPG_KEYS; do \
- gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; done \
&& gpg --batch --verify jetty.tar.gz.asc jetty.tar.gz \
- && gpgconf --kill all \
- && rm -rf "$GNUPGHOME" \
&& tar -xvf jetty.tar.gz --strip-components=1 \
&& sed -i '/jetty-logging/d' etc/jetty.conf \
- && rm -fr demo-base javadoc \
- && rm jetty.tar.gz* \
- && rm -rf /tmp/hsperfdata_root
-
-ENV JETTY_BASE /var/lib/jetty
-RUN mkdir -p "$JETTY_BASE"
-WORKDIR $JETTY_BASE
-
-# Get the list of modules in the default start.ini and build new base with those modules
-RUN modules="$(grep -- ^--module= "$JETTY_HOME/start.ini" | cut -d= -f2 | paste -d, -s)" \
- && set -xe \
+ && rm -fr jetty.tar.gz* \
+ && mkdir -p "$JETTY_BASE" \
+ && cd $JETTY_BASE \
+ && modules="$(grep -- ^--module= "$JETTY_HOME/start.ini" | cut -d= -f2 | paste -d, -s)" \
&& java -jar "$JETTY_HOME/start.jar" --add-to-startd="$modules" \
- && chown -R jetty:jetty "$JETTY_BASE" \
- && rm -rf /tmp/hsperfdata_root
-
-ENV TMPDIR /tmp/jetty
-RUN set -xe \
&& mkdir -p "$TMPDIR" \
- && chown -R jetty:jetty "$TMPDIR"
+ && groupadd -r jetty && useradd -r -g jetty jetty \
+ && chown -R jetty:jetty "$JETTY_HOME" "$JETTY_BASE" "$TMPDIR" \
+ && rm -rf /tmp/hsperfdata_root
+WORKDIR $JETTY_BASE
COPY docker-entrypoint.sh generate-jetty-start.sh /
USER jetty
diff --git a/jetty_9.3-jre8/docker-entrypoint.sh b/jetty_9.3-jre8/docker-entrypoint.sh
index cd8f821..41ccbe4 100755
--- a/jetty_9.3-jre8/docker-entrypoint.sh
+++ b/jetty_9.3-jre8/docker-entrypoint.sh
@@ -59,7 +59,9 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
--version |\
-v )\
# It is a terminating command, so exec directly
- exec "$@"
+ JAVA="$1"
+ shift
+ exec $JAVA $JAVA_OPTIONS "$@"
esac
done
@@ -88,7 +90,9 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
set -- $(cat $JETTY_START)
else
# Do a jetty dry run to set the final command
- "$@" --dry-run > $JETTY_START
+ JAVA="$1"
+ shift
+ $JAVA $JAVA_OPTIONS "$@" --dry-run > $JETTY_START
if [ $(egrep -v '\\$' $JETTY_START | wc -l ) -gt 1 ] ; then
# command was more than a dry-run
cat $JETTY_START \
@@ -96,14 +100,14 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
| egrep -v '[^ ]*java .* org\.eclipse\.jetty\.xml\.XmlConfiguration '
exit
fi
- set -- $(sed 's/\\$//' $JETTY_START)
+ set -- $(sed -e 's/ -Djava.io.tmpdir=[^ ]*//g' -e 's/\\$//' $JETTY_START)
fi
fi
if [ "${1##*/}" = java -a -n "$JAVA_OPTIONS" ] ; then
- java="$1"
+ JAVA="$1"
shift
- set -- "$java" $JAVA_OPTIONS "$@"
+ set -- "$JAVA" $JAVA_OPTIONS "$@"
fi
exec "$@"
diff --git a/jetty_9.3-jre8/generate-jetty-start.sh b/jetty_9.3-jre8/generate-jetty-start.sh
index de78102..5895278 100755
--- a/jetty_9.3-jre8/generate-jetty-start.sh
+++ b/jetty_9.3-jre8/generate-jetty-start.sh
@@ -4,4 +4,4 @@ if [ -z "$JETTY_START" ] ; then
JETTY_START=$JETTY_BASE/jetty.start
fi
rm -f $JETTY_START
-/docker-entrypoint.sh --dry-run | sed 's/\\$//' > $JETTY_START
+/docker-entrypoint.sh --dry-run | sed -e 's/ -Djava.io.tmpdir=[^ ]*//g' -e 's/\\$//' > $JETTY_START
diff --git a/jetty_jre8-alpine/Dockerfile b/jetty_jdk13/Dockerfile
similarity index 43%
rename from jetty_jre8-alpine/Dockerfile
rename to jetty_jdk13/Dockerfile
index 0693965..a9fc011 100644
--- a/jetty_jre8-alpine/Dockerfile
+++ b/jetty_jdk13/Dockerfile
@@ -1,14 +1,11 @@
-FROM openjdk:8-jre-alpine
-
-# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added
-RUN addgroup -S jetty && adduser -D -S -H -G jetty jetty && rm -rf /etc/group- /etc/passwd- /etc/shadow-
+# DO NOT EDIT. Edit Dockerfile-9.4 and use update.sh
+FROM openjdk:13-jdk
+ENV JETTY_VERSION 9.4.26.v20200117
ENV JETTY_HOME /usr/local/jetty
+ENV JETTY_BASE /var/lib/jetty
+ENV TMPDIR /tmp/jetty
ENV PATH $JETTY_HOME/bin:$PATH
-RUN mkdir -p "$JETTY_HOME"
-WORKDIR $JETTY_HOME
-
-ENV JETTY_VERSION 9.4.18.v20190429
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)
@@ -30,43 +27,55 @@ ENV JETTY_GPG_KEYS \
# Greg Wilkins <gregw@webtide.com>
5C9579B3DB2E506429319AAEF33B071B29559E1E
-RUN set -xe \
- # Install required packages for build time. Will be removed when build finishes.
- && apk add --no-cache --virtual .build-deps gnupg curl \
- \
- && curl -SL "$JETTY_TGZ_URL" -o jetty.tar.gz \
- && curl -SL "$JETTY_TGZ_URL.asc" -o jetty.tar.gz.asc \
- && export GNUPGHOME="$(mktemp -d)" \
- && for key in $JETTY_GPG_KEYS; do \
- gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; done \
- && gpg --batch --verify jetty.tar.gz.asc jetty.tar.gz \
- && gpgconf --kill all \
- && rm -rf "$GNUPGHOME" \
- && tar -xvzf jetty.tar.gz \
- && mv jetty-home-$JETTY_VERSION/* ./ \
- && sed -i '/jetty-logging/d' etc/jetty.conf \
- && rm jetty.tar.gz* \
- && rm -fr jetty-home-$JETTY_VERSION/ \
- \
- # Remove installed packages and various cleanup
- && apk del .build-deps \
- && rm -fr .build-deps \
- && rm -rf /tmp/hsperfdata_root
+RUN set -xe ; \
+ # fetch GPG keys
+ export GNUPGHOME=/jetty-keys ; \
+ mkdir -p "$GNUPGHOME" ; \
+ for key in $JETTY_GPG_KEYS; do \
+ for server in \
+ ha.pool.sks-keyservers.net \
+ p80.pool.sks-keyservers.net:80 \
+ ipv4.pool.sks-keyservers.net \
+ pgp.mit.edu ; \
+ do \
+ if gpg --batch --keyserver "$server" --recv-keys "$key"; then \
+ break; \
+ fi; \
+ done; \
+ 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" ; \
+ mkdir -p "$TMPDIR" ; \
+ groupadd -r jetty && useradd -r -g jetty jetty ; \
+ chown -R jetty:jetty "$JETTY_HOME" "$JETTY_BASE" "$TMPDIR" ; \
+ #
+ # 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 ;
-ENV JETTY_BASE /var/lib/jetty
-RUN mkdir -p "$JETTY_BASE"
WORKDIR $JETTY_BASE
-
-RUN set -xe \
- && java -jar "$JETTY_HOME/start.jar" --create-startd --add-to-start="server,http,deploy,jsp,jstl,ext,resources,websocket" \
- && chown -R jetty:jetty "$JETTY_BASE" \
- && rm -rf /tmp/hsperfdata_root
-
-ENV TMPDIR /tmp/jetty
-RUN set -xe \
- && mkdir -p "$TMPDIR" \
- && chown -R jetty:jetty "$TMPDIR"
-
COPY docker-entrypoint.sh generate-jetty-start.sh /
USER jetty
diff --git a/jetty_9-jre11/docker-entrypoint.sh b/jetty_jdk13/docker-entrypoint.sh
similarity index 92%
copy from jetty_9-jre11/docker-entrypoint.sh
copy to jetty_jdk13/docker-entrypoint.sh
index cd8f821..41ccbe4 100755
--- a/jetty_9-jre11/docker-entrypoint.sh
+++ b/jetty_jdk13/docker-entrypoint.sh
@@ -59,7 +59,9 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
--version |\
-v )\
# It is a terminating command, so exec directly
- exec "$@"
+ JAVA="$1"
+ shift
+ exec $JAVA $JAVA_OPTIONS "$@"
esac
done
@@ -88,7 +90,9 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
set -- $(cat $JETTY_START)
else
# Do a jetty dry run to set the final command
- "$@" --dry-run > $JETTY_START
+ JAVA="$1"
+ shift
+ $JAVA $JAVA_OPTIONS "$@" --dry-run > $JETTY_START
if [ $(egrep -v '\\$' $JETTY_START | wc -l ) -gt 1 ] ; then
# command was more than a dry-run
cat $JETTY_START \
@@ -96,14 +100,14 @@ if expr "$*" : 'java .*/start\.jar.*$' >/dev/null ; then
| egrep -v '[^ ]*java .* org\.eclipse\.jetty\.xml\.XmlConfiguration '
exit
fi
- set -- $(sed 's/\\$//' $JETTY_START)
+ set -- $(sed -e 's/ -Djava.io.tmpdir=[^ ]*//g' -e 's/\\$//' $JETTY_START)
fi
fi
if [ "${1##*/}" = java -a -n "$JAVA_OPTIONS" ] ; then
- java="$1"
+ JAVA="$1"
shift
- set -- "$java" $JAVA_OPTIONS "$@"
+ set -- "$JAVA" $JAVA_OPTIONS "$@"
fi
exec "$@"
diff --git a/jetty_9-jre11/generate-jetty-start.sh b/jetty_jdk13/generate-jetty-start.sh
similarity index 50%
copy from jetty_9-jre11/generate-jetty-start.sh
copy to jetty_jdk13/generate-jetty-start.sh
index de78102..5895278 100755
--- a/jetty_9-jre11/generate-jetty-start.sh
+++ b/jetty_jdk13/generate-jetty-start.sh
@@ -4,4 +4,4 @@ if [ -z "$JETTY_START" ] ; then
JETTY_START=$JETTY_BASE/jetty.start
fi
rm -f $JETTY_START
-/docker-entrypoint.sh --dry-run | sed 's/\\$//' > $JETTY_START
+/docker-entrypoint.sh --dry-run | sed -e 's/ -Djava.io.tmpdir=[^ ]*//g' -e 's/\\$//' > $JETTY_START
diff --git a/jetty_jre7/Dockerfile b/jetty_jre7/Dockerfile
deleted file mode 100644
index 20bad62..0000000
diff --git a/jetty_jre7/docker-entrypoint.sh b/jetty_jre7/docker-entrypoint.sh
deleted file mode 100755
index cd8f821..0000000
diff --git a/jetty_jre7/generate-jetty-start.sh b/jetty_jre7/generate-jetty-start.sh
deleted file mode 100755
index de78102..0000000
diff --git a/jetty_jre8-alpine/docker-entrypoint.sh b/jetty_jre8-alpine/docker-entrypoint.sh
deleted file mode 100755
index cd8f821..0000000
diff --git a/jetty_jre8-alpine/generate-jetty-start.sh b/jetty_jre8-alpine/generate-jetty-start.sh
deleted file mode 100755
index de78102..0000000
diff --git a/jetty_jre8/docker-entrypoint.sh b/jetty_jre8/docker-entrypoint.sh
deleted file mode 100755
index cd8f821..0000000
diff --git a/jetty_jre8/generate-jetty-start.sh b/jetty_jre8/generate-jetty-start.sh
deleted file mode 100755
index de78102..0000000 |
Build test of #7134; 7dc72f7; $ bashbrew build jetty:9.4.26-jre11-slim
Building bashbrew/cache:0375d673baebe2ba0f98f45b7e27cc3cd9bde2a1bda1013943cf4a75cc80aaa0 (jetty:9.4.26-jre11-slim)
Tagging jetty:9.4.26-jre11-slim
Tagging jetty:9.4-jre11-slim
Tagging jetty:9-jre11-slim
$ test/run.sh jetty:9.4.26-jre11-slim
testing jetty:9.4.26-jre11-slim
'utc' [1/5]...passed
'cve-2014--shellshock' [2/5]...passed
'no-hard-coded-passwords' [3/5]...passed
'override-cmd' [4/5]...passed
'jetty-hello-web' [5/5]....passed
$ bashbrew build jetty:9.4.26-jre11
Building bashbrew/cache:58aaca3c7cfc85f7cfa244ba87ffff39b94f764cfe3601bf6d7468d98bacfe23 (jetty:9.4.26-jre11)
Tagging jetty:9.4.26-jre11
Tagging jetty:9.4-jre11
Tagging jetty:9-jre11
$ test/run.sh jetty:9.4.26-jre11
testing jetty:9.4.26-jre11
'utc' [1/5]...passed
'cve-2014--shellshock' [2/5]...passed
'no-hard-coded-passwords' [3/5]...passed
'override-cmd' [4/5]...passed
'jetty-hello-web' [5/5]....passed
$ bashbrew build jetty:9.4.26-jre8
Building bashbrew/cache:09b42c4214ee6f9f4218d2da25d447258d1d14cf3db379141a80d5e8f1b5686e (jetty:9.4.26-jre8)
Tagging jetty:9.4.26-jre8
Tagging jetty:9.4-jre8
Tagging jetty:9-jre8
$ test/run.sh jetty:9.4.26-jre8
testing jetty:9.4.26-jre8
'utc' [1/5]...passed
'cve-2014--shellshock' [2/5]...passed
'no-hard-coded-passwords' [3/5]...passed
'override-cmd' [4/5]...passed
'jetty-hello-web' [5/5]....passed
$ bashbrew build jetty:9.4.26-jdk13-slim
Building bashbrew/cache:4b765752d6b0e9201a43b95f024fa32b1c573afe0eff8c5c9ca40b971e85c163 (jetty:9.4.26-jdk13-slim)
Tagging jetty:9.4.26-jdk13-slim
Tagging jetty:9.4-jdk13-slim
Tagging jetty:9-jdk13-slim
$ test/run.sh jetty:9.4.26-jdk13-slim
testing jetty:9.4.26-jdk13-slim
'utc' [1/5]...passed
'cve-2014--shellshock' [2/5]...passed
'no-hard-coded-passwords' [3/5]...passed
'override-cmd' [4/5]...passed
'jetty-hello-web' [5/5]....passed
$ bashbrew build jetty:9.4.26
Building bashbrew/cache:e23dc6951c511e70473ddc0588990adb7e230f85006e156a64090bc18e16aad6 (jetty:9.4.26)
Tagging jetty:9.4.26
Tagging jetty:9.4
Tagging jetty:9
Tagging jetty:9.4.26-jdk13
Tagging jetty:9.4-jdk13
Tagging jetty:9-jdk13
Tagging jetty:latest
Tagging jetty:jdk13
$ test/run.sh jetty:9.4.26
testing jetty:9.4.26
'utc' [1/5]...passed
'cve-2014--shellshock' [2/5]...passed
'no-hard-coded-passwords' [3/5]...passed
'override-cmd' [4/5]...passed
'jetty-hello-web' [5/5]....passed
$ bashbrew build jetty:9.3.28-jre8
Building bashbrew/cache:4575d359ab3b06991f60adc3e45d92604dafabb61d032d105fefe6e125f1f435 (jetty:9.3.28-jre8)
Tagging jetty:9.3.28-jre8
Tagging jetty:9.3-jre8
$ test/run.sh jetty:9.3.28-jre8
testing jetty:9.3.28-jre8
'utc' [1/5]...passed
'cve-2014--shellshock' [2/5]...passed
'no-hard-coded-passwords' [3/5]...passed
'override-cmd' [4/5]...passed
'jetty-hello-web' [5/5]....passed
$ bashbrew build jetty:9.2.29-jre8
Building bashbrew/cache:7109b7349f6fdfd1d244e2d66e5056e90a29d5f13ed1bf046f3ba92fdf157617 (jetty:9.2.29-jre8)
Tagging jetty:9.2.29-jre8
Tagging jetty:9.2-jre8
$ test/run.sh jetty:9.2.29-jre8
testing jetty:9.2.29-jre8
'utc' [1/5]...passed
'cve-2014--shellshock' [2/5]...passed
'no-hard-coded-passwords' [3/5]...passed
'override-cmd' [4/5]...passed
'jetty-hello-web' [5/5]....passed
|
These images are based of a new staged Dockerfile and support JDK11, 13 and slim varients. The alpine varients are dropped.
Signed-off-by: Greg Wilkins gregw@webtide.com