Skip to content

Commit 6b6d0c7

Browse files
authored
Merge pull request #35 from OmniFish-EE/gf8
GlassFish 8.0.0
2 parents c8f77d7 + 4cfb70e commit 6b6d0c7

File tree

12 files changed

+782
-3
lines changed

12 files changed

+782
-3
lines changed

images/embedded/8.0.0/Dockerfile

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
FROM eclipse-temurin:21-jdk
2+
3+
LABEL org.opencontainers.image.base.name="eclipse-temurin:21-jdk"
4+
LABEL org.opencontainers.image.source="https://github.com/eclipse-ee4j/glassfish.docker"
5+
LABEL org.opencontainers.image.url="https://github.com/eclipse-ee4j/glassfish.docker/wiki"
6+
7+
LABEL org.opencontainers.image.title="Embedded Eclipse GlassFish"
8+
LABEL org.opencontainers.image.description="The Official Eclipse Docker Image for Embedded GlassFish"
9+
LABEL org.opencontainers.image.version="8.0.0"
10+
11+
LABEL org.opencontainers.image.authors="glassfish-dev@eclipse.org"
12+
LABEL org.opencontainers.image.vendor="Eclipse Foundation"
13+
LABEL org.opencontainers.image.licenses="EPL-2.0"
14+
15+
EXPOSE 8080 8181
16+
17+
# You should use own credentials and own files! These are just defaults.
18+
ARG UID=1000 \
19+
GID=1000
20+
ENV PATH_GF_HOME=/opt/glassfish
21+
ENV GLASSFISH_DOWNLOAD_SHA512=aabf21db331d31b4c54a696466ca762581c4de7002ad5cf58956368765fd005396e76ec0c932bc9c140f0a14883cc96915e7f2d9bf6bc338c2b1f007d8bfec21 \
22+
GLASSFISH_VERSION=8.0.0 \
23+
PATH_GF_JAR=${PATH_GF_HOME}/glassfish-embedded-all.jar
24+
25+
RUN true \
26+
&& set -x \
27+
&& apt-get update \
28+
&& apt-get upgrade -y \
29+
&& apt-get install -y gpg unzip \
30+
&& mkdir -p "${PATH_GF_HOME}" \
31+
&& curl -fL "https://repo1.maven.org/maven2/org/glassfish/main/extras/glassfish-embedded-all/${GLASSFISH_VERSION}/glassfish-embedded-all-${GLASSFISH_VERSION}.jar.asc" -o glassfish-embedded-all.jar.asc \
32+
&& curl -fL "https://repo1.maven.org/maven2/org/glassfish/main/extras/glassfish-embedded-all/${GLASSFISH_VERSION}/glassfish-embedded-all-${GLASSFISH_VERSION}.jar" -o "${PATH_GF_HOME}"/glassfish-embedded-all.jar \
33+
&& export GNUPGHOME="$(mktemp -d)" \
34+
&& gpg --batch --keyserver keyserver.ubuntu.com --recv-keys D4A77129F00F736293BE5A51AFC18A2271EDDFE1 \
35+
&& gpg --batch --verify glassfish-embedded-all.jar.asc "${PATH_GF_HOME}"/glassfish-embedded-all.jar \
36+
&& rm glassfish-embedded-all.jar.asc \
37+
&& echo "$GLASSFISH_DOWNLOAD_SHA512 "${PATH_GF_HOME}"/glassfish-embedded-all.jar" | sha512sum --strict --check \
38+
&& userdel -r ubuntu \
39+
&& groupadd -g ${GID} glassfish \
40+
&& useradd -r -l -u ${UID} -g ${GID} -d "${PATH_GF_HOME}" -s /bin/bash glassfish \
41+
&& env | sort \
42+
&& chown -R glassfish:glassfish "${PATH_GF_HOME}" \
43+
&& mkdir ${PATH_GF_HOME}/autodeploy \
44+
&& ln -s ${PATH_GF_HOME}/autodeploy /deploy \
45+
&& echo "Installation was successful."
46+
47+
USER glassfish
48+
WORKDIR ${PATH_GF_HOME}
49+
ENTRYPOINT ["java", "-jar", "glassfish-embedded-all.jar"]

images/server/8.0.0/Dockerfile

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
FROM eclipse-temurin:21-jdk
2+
3+
LABEL org.opencontainers.image.base.name="eclipse-temurin:21-jdk"
4+
LABEL org.opencontainers.image.source="https://github.com/eclipse-ee4j/glassfish.docker"
5+
LABEL org.opencontainers.image.url="https://github.com/eclipse-ee4j/glassfish.docker/wiki"
6+
7+
LABEL org.opencontainers.image.title="Eclipse GlassFish"
8+
LABEL org.opencontainers.image.description="The Official Eclipse GlassFish Docker Image"
9+
LABEL org.opencontainers.image.version="8.0.0"
10+
11+
LABEL org.opencontainers.image.authors="glassfish-dev@eclipse.org"
12+
LABEL org.opencontainers.image.vendor="Eclipse Foundation"
13+
LABEL org.opencontainers.image.licenses="EPL-2.0"
14+
15+
EXPOSE 4848 9009 8080 8181 8686 3700 3820 3920 6666
16+
17+
# You should use own credentials and own files! These are just defaults.
18+
ARG AS_ADMIN_PASSWORD=admin \
19+
PATH_GF_PASSWORD_FILE_FOR_CHANGE=/password-change.txt \
20+
UID=1000 \
21+
GID=1000
22+
ENV PATH_GF_HOME=/opt/gfinstall \
23+
AS_ADMIN_USER=admin \
24+
AS_ADMIN_PASSWORDFILE=/password.txt
25+
ENV AS_USER=${AS_ADMIN_USER} \
26+
AS_PASSWORD_FILE=${AS_ADMIN_PASSWORDFILE} \
27+
AS_TRACE=false \
28+
AS_TRACE_LOGGING=false \
29+
AS_TRACE_BOOTSTRAP=false \
30+
AS_STOP_TIMEOUT=9500 \
31+
GLASSFISH_DOWNLOAD_SHA512=08bcf11f65990e4ded23a1005ed8578fd6317a26c9d0bddd7772068a8a902aa7c593b3fe9ec315cafe7d0b1b9610fc3cf6da2de306278db854d744c27d7799e8 \
32+
GLASSFISH_VERSION=8.0.0 \
33+
PATH_GF_BIN=${PATH_GF_HOME}/bin \
34+
PATH_GF_SERVER_LOG="${PATH_GF_HOME}/glassfish/domains/domain1/logs/server.log"
35+
ENV PATH="${PATH_GF_BIN}:${PATH}"
36+
37+
RUN true \
38+
&& set -x \
39+
&& apt-get update \
40+
&& apt-get upgrade -y \
41+
&& apt-get install -y gpg unzip \
42+
&& curl -fL "https://repo1.maven.org/maven2/org/glassfish/main/distributions/glassfish/${GLASSFISH_VERSION}/glassfish-${GLASSFISH_VERSION}.zip.asc" -o glassfish.zip.asc \
43+
&& curl -fL "https://repo1.maven.org/maven2/org/glassfish/main/distributions/glassfish/${GLASSFISH_VERSION}/glassfish-${GLASSFISH_VERSION}.zip" -o glassfish.zip \
44+
&& export GNUPGHOME="$(mktemp -d)" \
45+
&& gpg --batch --keyserver keyserver.ubuntu.com --recv-keys D4A77129F00F736293BE5A51AFC18A2271EDDFE1 \
46+
&& gpg --batch --verify glassfish.zip.asc glassfish.zip \
47+
&& rm glassfish.zip.asc \
48+
&& echo "$GLASSFISH_DOWNLOAD_SHA512 glassfish.zip" | sha512sum --strict --check \
49+
&& mkdir -p "${PATH_GF_HOME}" \
50+
&& TMPDIR=$(mktemp -d /opt/gfXXXX) \
51+
&& unzip -q glassfish.zip -d "$TMPDIR" \
52+
&& cp -r "$TMPDIR"/*/* "${PATH_GF_HOME}/" \
53+
&& rm -rf "$TMPDIR" glassfish.zip \
54+
&& userdel -r ubuntu \
55+
&& groupadd -g ${GID} glassfish \
56+
&& useradd -r -l -u ${UID} -g ${GID} -d "${PATH_GF_HOME}" -s /bin/bash glassfish \
57+
&& echo "Generating password file at ${AS_PASSWORD_FILE} ..." \
58+
&& set +x \
59+
&& echo "AS_ADMIN_PASSWORD=${AS_ADMIN_PASSWORD}" > "${AS_PASSWORD_FILE}" \
60+
&& chown glassfish:glassfish "${AS_PASSWORD_FILE}" \
61+
&& echo "AS_ADMIN_PASSWORD=" > "${PATH_GF_PASSWORD_FILE_FOR_CHANGE}" \
62+
&& echo "AS_ADMIN_NEWPASSWORD=${AS_ADMIN_PASSWORD}" >> "${PATH_GF_PASSWORD_FILE_FOR_CHANGE}" \
63+
&& echo "" >> "${PATH_GF_PASSWORD_FILE_FOR_CHANGE}" \
64+
&& unset AS_ADMIN_PASSWORD \
65+
&& set -x \
66+
&& env | sort \
67+
&& AS_START_TIMEOUT=120000 asadmin start-domain \
68+
&& curl -o /dev/null http://localhost:4848 \
69+
&& asadmin --passwordfile ${PATH_GF_PASSWORD_FILE_FOR_CHANGE} change-admin-password \
70+
&& asadmin stop-domain --kill \
71+
&& AS_START_TIMEOUT=120000 asadmin start-domain \
72+
&& curl -o /dev/null http://localhost:4848 \
73+
&& asadmin set-log-attributes org.glassfish.main.jul.handler.GlassFishLogHandler.enabled=false \
74+
&& asadmin set-log-attributes org.glassfish.main.jul.handler.SimpleLogHandler.level=FINEST \
75+
&& asadmin enable-secure-admin \
76+
&& sleep 1 \
77+
&& asadmin stop-domain --kill \
78+
&& rm -f ${PATH_GF_SERVER_LOG} ${PATH_GF_PASSWORD_FILE_FOR_CHANGE} \
79+
&& chown -R glassfish:glassfish "${PATH_GF_HOME}" \
80+
&& ln -s "${PATH_GF_HOME}/glassfish/domains/domain1/autodeploy" /deploy \
81+
&& echo "Installation was successful."
82+
83+
COPY --chmod=755 docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
84+
85+
USER glassfish
86+
WORKDIR ${PATH_GF_HOME}
87+
ENTRYPOINT ["docker-entrypoint.sh"]
88+
CMD ["startserv"]
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
#!/bin/bash
2+
set -e
3+
4+
change_passwords () {
5+
local PATH_GF_PASSWORD_FILE_FOR_CHANGE=/tmp/passwordfile
6+
local COMMAND=""
7+
rm -f "${PATH_GF_PASSWORD_FILE_FOR_CHANGE}"
8+
9+
if [ "${AS_ADMIN_PASSWORD}" != "" ] && [ "${AS_ADMIN_PASSWORD}" != "admin" ]; then
10+
echo -e "AS_ADMIN_PASSWORD=admin" > "${PATH_GF_PASSWORD_FILE_FOR_CHANGE}"
11+
echo -e "AS_ADMIN_NEWPASSWORD=${AS_ADMIN_PASSWORD}" >> "${PATH_GF_PASSWORD_FILE_FOR_CHANGE}"
12+
COMMAND="change-admin-password"
13+
fi
14+
15+
if [ "${AS_ADMIN_MASTERPASSWORD}" != "" ] && [ "${AS_ADMIN_MASTERPASSWORD}" != "changeit" ]; then
16+
echo -e "AS_ADMIN_MASTERPASSWORD=changeit" >> ${PATH_GF_PASSWORD_FILE_FOR_CHANGE}
17+
echo -e "AS_ADMIN_NEWMASTERPASSWORD=${AS_ADMIN_MASTERPASSWORD}" >> ${PATH_GF_PASSWORD_FILE_FOR_CHANGE}
18+
COMMAND+="\nchange-master-password --savemasterpassword=true"
19+
fi
20+
21+
if [ "${COMMAND}" != "" ]; then
22+
echo -e "${COMMAND}" | asadmin --interactive=false --passwordfile=${PATH_GF_PASSWORD_FILE_FOR_CHANGE}
23+
echo "AS_ADMIN_PASSWORD=${AS_ADMIN_PASSWORD}" > "${AS_PASSWORD_FILE}"
24+
fi
25+
26+
rm -f ${PATH_GF_PASSWORD_FILE_FOR_CHANGE}
27+
unset AS_ADMIN_PASSWORD;
28+
unset AS_ADMIN_MASTERPASSWORD;
29+
history -c
30+
}
31+
32+
on_exit () {
33+
EXIT_CODE=$?
34+
set +e;
35+
ps -lAf;
36+
asadmin stop-domain --force --kill;
37+
exit $EXIT_CODE;
38+
}
39+
40+
change_passwords
41+
42+
if [ -f custom/init.sh ]; then
43+
/bin/bash custom/init.sh
44+
fi
45+
46+
if [ -f custom/init.asadmin ]; then
47+
asadmin --interactive=false multimode -f custom/init.asadmin
48+
fi
49+
50+
51+
if [ "$1" != 'asadmin' -a "$1" != 'startserv' ]; then
52+
exec "$@"
53+
fi
54+
55+
CONTAINER_ALREADY_STARTED="CONTAINER_ALREADY_STARTED_PLACEHOLDER"
56+
if [ ! -f "$CONTAINER_ALREADY_STARTED" ]
57+
then
58+
touch "$CONTAINER_ALREADY_STARTED" && rm -rf glassfish/domains/domain1/autodeploy/.autodeploystatus
59+
fi
60+
61+
if [ "${AS_TRACE}" == true ]; then
62+
env | sort
63+
fi
64+
65+
if [ "$1" == 'startserv' ]; then
66+
exec "$@"
67+
fi
68+
69+
trap on_exit EXIT
70+
71+
"$@" & wait
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
Tags: 8.0.0, 8.0.0-jdk21, 8.0.0-jdk21-eclipse-temurin
2+
Architectures: amd64, arm64v8
3+
Directory: images/server/8.0.0
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
Eclipse GlassFish is a Jakarta EE Full Profile compatible implementation.
2+

0 commit comments

Comments
 (0)