Skip to content
This repository was archived by the owner on Jun 29, 2020. It is now read-only.

Commit 6049f1a

Browse files
committed
Merge pull request #32 from hypnoce/alpine
Add alpine-base images
2 parents 9f7f0b4 + b85547d commit 6049f1a

13 files changed

+200
-61
lines changed

.travis.yml

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,18 @@ language: bash
44
dist: trusty
55

66
env:
7-
- VERSION=9.2 VARIANT=jre7
8-
- VERSION=9.2 VARIANT=jre8
9-
- VERSION=9.3 VARIANT=jre8
7+
- VERSION=9.2-jre7
8+
- VERSION=9.2-jre8
9+
- VERSION=9.3-jre8
10+
- VERSION=9.3-jre8 VARIANT=alpine
1011

1112
install:
1213
- git clone https://github.com/docker-library/official-images.git ~/official-images
1314

1415
before_script:
1516
- env | sort
16-
- cd "$VERSION-$VARIANT"
17-
- image="jetty:$VERSION-$VARIANT"
17+
- cd "${VERSION}${VARIANT:+/$VARIANT}"
18+
- image="jetty:${VERSION}${VARIANT:+-$VARIANT}"
1819

1920
script:
2021
- docker build --pull -t "$image" .

9.2-jre7/Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,8 @@ RUN set -xe \
4747
&& mkdir -p "$JETTY_RUN" "$TMPDIR" \
4848
&& chown -R jetty:jetty "$JETTY_RUN" "$TMPDIR" "$JETTY_BASE"
4949

50-
COPY docker-entrypoint.bash /
50+
COPY docker-entrypoint.sh /
5151

5252
EXPOSE 8080
53-
ENTRYPOINT ["/docker-entrypoint.bash"]
53+
ENTRYPOINT ["/docker-entrypoint.sh"]
5454
CMD ["java","-Djava.io.tmpdir=/tmp/jetty","-jar","/usr/local/jetty/start.jar"]

9.2-jre7/docker-entrypoint.bash renamed to 9.2-jre7/docker-entrypoint.sh

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,16 @@
1-
#!/bin/bash
1+
#!/bin/sh
22

33
set -e
44

55
if [ "$1" = jetty.sh ]; then
6+
if ! command -v bash >/dev/null 2>&1 ; then
7+
cat >&2 <<- 'EOWARN'
8+
********************************************************************
9+
ERROR: bash not found. Use of jetty.sh requires bash.
10+
********************************************************************
11+
EOWARN
12+
exit 1
13+
fi
614
cat >&2 <<- 'EOWARN'
715
********************************************************************
816
WARNING: Use of jetty.sh from this image is deprecated and may
@@ -14,7 +22,7 @@ if [ "$1" = jetty.sh ]; then
1422
EOWARN
1523
fi
1624

17-
if ! type -- "$1" &>/dev/null; then
25+
if ! command -v -- "$1" >/dev/null 2>&1 ; then
1826
set -- java -jar "-Djava.io.tmpdir=$TMPDIR" "$JETTY_HOME/start.jar" "$@"
1927
fi
2028

9.2-jre8/Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,8 @@ RUN set -xe \
4747
&& mkdir -p "$JETTY_RUN" "$TMPDIR" \
4848
&& chown -R jetty:jetty "$JETTY_RUN" "$TMPDIR" "$JETTY_BASE"
4949

50-
COPY docker-entrypoint.bash /
50+
COPY docker-entrypoint.sh /
5151

5252
EXPOSE 8080
53-
ENTRYPOINT ["/docker-entrypoint.bash"]
53+
ENTRYPOINT ["/docker-entrypoint.sh"]
5454
CMD ["java","-Djava.io.tmpdir=/tmp/jetty","-jar","/usr/local/jetty/start.jar"]

9.2-jre8/docker-entrypoint.bash renamed to 9.2-jre8/docker-entrypoint.sh

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,16 @@
1-
#!/bin/bash
1+
#!/bin/sh
22

33
set -e
44

55
if [ "$1" = jetty.sh ]; then
6+
if ! command -v bash >/dev/null 2>&1 ; then
7+
cat >&2 <<- 'EOWARN'
8+
********************************************************************
9+
ERROR: bash not found. Use of jetty.sh requires bash.
10+
********************************************************************
11+
EOWARN
12+
exit 1
13+
fi
614
cat >&2 <<- 'EOWARN'
715
********************************************************************
816
WARNING: Use of jetty.sh from this image is deprecated and may
@@ -14,7 +22,7 @@ if [ "$1" = jetty.sh ]; then
1422
EOWARN
1523
fi
1624

17-
if ! type -- "$1" &>/dev/null; then
25+
if ! command -v -- "$1" >/dev/null 2>&1 ; then
1826
set -- java -jar "-Djava.io.tmpdir=$TMPDIR" "$JETTY_HOME/start.jar" "$@"
1927
fi
2028

9.3-jre8/Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@ RUN set -xe \
4646
&& mkdir -p "$JETTY_RUN" "$TMPDIR" \
4747
&& chown -R jetty:jetty "$JETTY_RUN" "$TMPDIR" "$JETTY_BASE"
4848

49-
COPY docker-entrypoint.bash /
49+
COPY docker-entrypoint.sh /
5050

5151
EXPOSE 8080
52-
ENTRYPOINT ["/docker-entrypoint.bash"]
52+
ENTRYPOINT ["/docker-entrypoint.sh"]
5353
CMD ["java","-Djava.io.tmpdir=/tmp/jetty","-jar","/usr/local/jetty/start.jar"]

9.3-jre8/alpine/Dockerfile

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
FROM java:8-jre-alpine
2+
3+
# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added
4+
RUN addgroup -S jetty && adduser -D -S -H -G jetty jetty && rm -rf /etc/group- /etc/passwd- /etc/shadow-
5+
6+
ENV JETTY_HOME /usr/local/jetty
7+
ENV PATH $JETTY_HOME/bin:$PATH
8+
RUN mkdir -p "$JETTY_HOME"
9+
WORKDIR $JETTY_HOME
10+
11+
ENV JETTY_BASE /var/lib/jetty
12+
RUN mkdir -p "$JETTY_BASE"
13+
14+
ENV JETTY_VERSION 9.3.9.v20160517
15+
ENV JETTY_TGZ_URL https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-distribution/$JETTY_VERSION/jetty-distribution-$JETTY_VERSION.tar.gz
16+
17+
# GPG Keys are personal keys of Jetty committers (see https://dev.eclipse.org/mhonarc/lists/jetty-users/msg05220.html)
18+
ENV JETTY_GPG_KEYS \
19+
# 1024D/8FB67BAC 2006-12-10 Joakim Erdfelt <[email protected]>
20+
B59B67FD7904984367F931800818D9D68FB67BAC \
21+
# 1024D/D7C58886 2010-03-09 Jesse McConnell (signing key) <[email protected]>
22+
5DE533CB43DAF8BC3E372283E7AE839CD7C58886
23+
RUN set -xe \
24+
25+
# Install required packages for build time. Will be removed when build finishes.
26+
&& apk add --no-cache --virtual .build-deps gnupg coreutils curl \
27+
28+
&& curl -SL "$JETTY_TGZ_URL" -o jetty.tar.gz \
29+
&& curl -SL "$JETTY_TGZ_URL.asc" -o jetty.tar.gz.asc \
30+
&& export GNUPGHOME="$(mktemp -d)" \
31+
&& for key in $JETTY_GPG_KEYS; do \
32+
gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; done \
33+
&& gpg --batch --verify jetty.tar.gz.asc jetty.tar.gz \
34+
&& rm -r "$GNUPGHOME" \
35+
&& tar -xvzf jetty.tar.gz \
36+
&& mv jetty-distribution-$JETTY_VERSION/* ./ \
37+
&& sed -i '/jetty-logging/d' etc/jetty.conf \
38+
&& rm -fr demo-base javadoc \
39+
&& rm jetty.tar.gz* \
40+
&& rm -fr jetty-distribution-$JETTY_VERSION/ \
41+
42+
# Get the list of modules in the default start.ini and build new base with those modules, then add setuid
43+
&& cd $JETTY_BASE \
44+
&& modules="$(grep -- ^--module= "$JETTY_HOME/start.ini" | cut -d= -f2 | paste -d, -s)" \
45+
&& java -jar "$JETTY_HOME/start.jar" --add-to-startd="$modules,setuid" \
46+
47+
# Remove installed packages and various cleanup
48+
&& apk del .build-deps \
49+
&& rm -fr .build-deps \
50+
&& rm -rf /tmp/hsperfdata_root
51+
52+
WORKDIR $JETTY_BASE
53+
54+
ENV JETTY_RUN /run/jetty
55+
ENV JETTY_STATE $JETTY_RUN/jetty.state
56+
ENV TMPDIR /tmp/jetty
57+
RUN set -xe \
58+
&& mkdir -p "$JETTY_RUN" "$TMPDIR" \
59+
&& chown -R jetty:jetty "$JETTY_RUN" "$TMPDIR" "$JETTY_BASE"
60+
61+
COPY docker-entrypoint.sh /
62+
63+
EXPOSE 8080
64+
ENTRYPOINT ["/docker-entrypoint.sh"]
65+
CMD ["java","-Djava.io.tmpdir=/tmp/jetty","-jar","/usr/local/jetty/start.jar"]

9.3-jre8/docker-entrypoint.bash renamed to 9.3-jre8/alpine/docker-entrypoint.sh

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,16 @@
1-
#!/bin/bash
1+
#!/bin/sh
22

33
set -e
44

55
if [ "$1" = jetty.sh ]; then
6+
if ! command -v bash >/dev/null 2>&1 ; then
7+
cat >&2 <<- 'EOWARN'
8+
********************************************************************
9+
ERROR: bash not found. Use of jetty.sh requires bash.
10+
********************************************************************
11+
EOWARN
12+
exit 1
13+
fi
614
cat >&2 <<- 'EOWARN'
715
********************************************************************
816
WARNING: Use of jetty.sh from this image is deprecated and may
@@ -14,7 +22,7 @@ if [ "$1" = jetty.sh ]; then
1422
EOWARN
1523
fi
1624

17-
if ! type -- "$1" &>/dev/null; then
25+
if ! command -v -- "$1" >/dev/null 2>&1 ; then
1826
set -- java -jar "-Djava.io.tmpdir=$TMPDIR" "$JETTY_HOME/start.jar" "$@"
1927
fi
2028

docker-entrypoint.bash renamed to 9.3-jre8/docker-entrypoint.sh

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,16 @@
1-
#!/bin/bash
1+
#!/bin/sh
22

33
set -e
44

55
if [ "$1" = jetty.sh ]; then
6+
if ! command -v bash >/dev/null 2>&1 ; then
7+
cat >&2 <<- 'EOWARN'
8+
********************************************************************
9+
ERROR: bash not found. Use of jetty.sh requires bash.
10+
********************************************************************
11+
EOWARN
12+
exit 1
13+
fi
614
cat >&2 <<- 'EOWARN'
715
********************************************************************
816
WARNING: Use of jetty.sh from this image is deprecated and may
@@ -14,7 +22,7 @@ if [ "$1" = jetty.sh ]; then
1422
EOWARN
1523
fi
1624

17-
if ! type -- "$1" &>/dev/null; then
25+
if ! command -v -- "$1" >/dev/null 2>&1 ; then
1826
set -- java -jar "-Djava.io.tmpdir=$TMPDIR" "$JETTY_HOME/start.jar" "$@"
1927
fi
2028

Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
VERSIONS = $(foreach df,$(wildcard */Dockerfile),$(df:%/Dockerfile=%))
1+
VERSIONS = $(foreach df,$(wildcard */alpine/Dockerfile */Dockerfile),$(df:%/Dockerfile=%))
22

33
all: build
44

55
build: $(VERSIONS)
66

77
define jetty-version
88
$1:
9-
docker build -t jetty:$1 $1
9+
docker build -t jetty:$(shell echo $1 | sed -e 's/\//-/g') $1
1010
endef
1111
$(foreach version,$(VERSIONS),$(eval $(call jetty-version,$(version))))
1212

docker-entrypoint.sh

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
#!/bin/sh
2+
3+
set -e
4+
5+
if [ "$1" = jetty.sh ]; then
6+
if ! command -v bash >/dev/null 2>&1 ; then
7+
cat >&2 <<- 'EOWARN'
8+
********************************************************************
9+
ERROR: bash not found. Use of jetty.sh requires bash.
10+
********************************************************************
11+
EOWARN
12+
exit 1
13+
fi
14+
cat >&2 <<- 'EOWARN'
15+
********************************************************************
16+
WARNING: Use of jetty.sh from this image is deprecated and may
17+
be removed at some point in the future.
18+
19+
See the documentation for guidance on extending this image:
20+
https://github.com/docker-library/docs/tree/master/jetty
21+
********************************************************************
22+
EOWARN
23+
fi
24+
25+
if ! command -v -- "$1" >/dev/null 2>&1 ; then
26+
set -- java -jar "-Djava.io.tmpdir=$TMPDIR" "$JETTY_HOME/start.jar" "$@"
27+
fi
28+
29+
exec "$@"

generate-stackbrew-library.sh

Lines changed: 41 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -35,45 +35,54 @@ outputTag() {
3535
}
3636

3737
for path in "${paths[@]}"; do
38-
echo
38+
for variant in '' alpine; do
39+
echo
3940

40-
commit="$(git log -1 --format='format:%H' -- "$path")"
41+
[ -f "$path${variant:+/$variant}/Dockerfile" ] || continue
4142

42-
suffix="${path#*-}" # "jre7"
43+
commit="$(git log -1 --format='format:%H' -- "$path${variant:+/$variant}")"
4344

44-
version="$(grep -m1 'ENV JETTY_VERSION ' "$path/Dockerfile" | cut -d' ' -f3)"
45+
suffix="${path#*-}" # "jre7"
4546

46-
if [[ "$version" == *.v* ]]; then
47-
# Release version
48-
versionAliases=()
49-
while [[ "$version" == *.* ]]; do
50-
version="${version%.*}"
51-
versionAliases+=("$version")
52-
done
53-
else
54-
# Non-release version
55-
versionAliases=("$version")
56-
fi
47+
version="$(grep -m1 'ENV JETTY_VERSION ' "$path${variant:+/$variant}/Dockerfile" | cut -d' ' -f3)"
48+
49+
if [[ "$version" == *.v* ]]; then
50+
# Release version
51+
versionAliases=()
52+
while [[ "$version" == *.* ]]; do
53+
version="${version%.*}"
54+
versionAliases+=("$version")
55+
done
56+
else
57+
# Non-release version
58+
versionAliases=("$version")
59+
fi
60+
61+
# Output ${versionAliases[@]} without suffixes
62+
# e.g. 9.2.10, 9.2, 9, 9.3-alpine
63+
if [ "$suffix" = "$defaultSuffix" ]; then
64+
for va in "${versionAliases[@]}"; do
65+
outputTag "$va${variant:+-$variant}" "$url" "$commit" "$path${variant:+/$variant}"
66+
done
67+
fi
5768

58-
# Output ${versionAliases[@]} without suffixes
59-
# e.g. 9.2.10, 9.2, 9
60-
if [ "$suffix" = "$defaultSuffix" ]; then
69+
# Output ${versionAliases[@]} with suffixes
70+
# e.g. 9.2.10-jre7, 9.2-jre7, 9-jre7, 9-jre8-alpine
6171
for va in "${versionAliases[@]}"; do
62-
outputTag "$va" "$url" "$commit" "$path"
72+
outputTag "$va-$suffix${variant:+-$variant}" "$url" "$commit" "$path${variant:+/$variant}"
6373
done
64-
fi
6574

66-
# Output ${versionAliases[@]} with suffixes
67-
# e.g. 9.2.10-jre7, 9.2-jre7, 9-jre7
68-
for va in "${versionAliases[@]}"; do
69-
outputTag "$va-$suffix" "$url" "$commit" "$path"
75+
# Output custom aliases
76+
# e.g. latest, jre7, jre8, latest-alpine
77+
if [ ${#aliases[$path]} -gt 0 ]; then
78+
for va in ${aliases[$path]}; do
79+
if [ ! -z "$variant" -a "$va" = 'latest' ]; then
80+
va="$variant"
81+
else
82+
va="$va${variant:+-$variant}"
83+
fi
84+
outputTag "$va" "$url" "$commit" "$path${variant:+/$variant}"
85+
done
86+
fi
7087
done
71-
72-
# Output custom aliases
73-
# e.g. latest, jre7, jre8
74-
if [ ${#aliases[$path]} -gt 0 ]; then
75-
for va in ${aliases[$path]}; do
76-
outputTag "$va" "$url" "$commit" "$path"
77-
done
78-
fi
7988
done

update.sh

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,15 @@ for path in "${paths[@]}"; do
3939
exit 1
4040
fi
4141

42-
(
43-
set -x
44-
cp docker-entrypoint.bash "$path/"
45-
sed -ri '
46-
s/^(FROM) .*/\1 '"$baseImage"'/;
47-
s/^(ENV JETTY_VERSION) .*/\1 '"$fullVersion"'/;
48-
' "$path/Dockerfile"
49-
)
42+
for variant in alpine ''; do
43+
[ -d "$path/$variant" ] || continue
44+
(
45+
set -x
46+
cp docker-entrypoint.sh "$path/$variant"
47+
sed -ri '
48+
s/^(FROM) .*/\1 '"$baseImage${variant:+-$variant}"'/;
49+
s/^(ENV JETTY_VERSION) .*/\1 '"$fullVersion"'/;
50+
' "$path/$variant/Dockerfile"
51+
)
52+
done
5053
done

0 commit comments

Comments
 (0)