Skip to content

Commit 6aa8e66

Browse files
authored
Merge pull request #26 from eclipse-ee4j/gf7023
Released 7.0.23
2 parents c0e626e + 24d9559 commit 6aa8e66

11 files changed

+797
-2
lines changed

.github/workflows/docker-publish.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ env:
88
REGISTRY: ghcr.io
99
# github.repository as <account>/<repo>
1010
IMAGE_ID: "ghcr.io/${{ github.repository_owner }}/glassfish"
11-
IMAGE_VERSION: 7.0.22
11+
IMAGE_VERSION: 7.0.23
1212

1313
jobs:
1414
build:

7.0.23/Dockerfile

+86
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
FROM eclipse-temurin:17.0.14_7-jdk
2+
3+
LABEL org.opencontainers.image.base.name="eclipse-temurin:17.0.14_7-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="7.0.23"
10+
11+
LABEL org.opencontainers.image.authors="[email protected]"
12+
LABEL org.opencontainers.image.vendor="Eclipse Foundation"
13+
LABEL org.opencontainers.image.licenses="EPL-2.0"
14+
15+
EXPOSE 4848 9009 8080 8181 7676 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/glassfish7 \
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=842850b2dd6f810cc78381f3b251709507902194f0d76a01ae74e41ebdf651127278e1df8f25f9c4db409dc6c512b9b87459d00c5bbc4bfcd02751983150e722 \
32+
GLASSFISH_VERSION=7.0.23 \
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+
COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
38+
39+
RUN true \
40+
&& set -x \
41+
&& apt update \
42+
&& apt upgrade -y \
43+
&& apt install -y gpg unzip \
44+
&& curl -fL "https://repo1.maven.org/maven2/org/glassfish/main/distributions/glassfish/${GLASSFISH_VERSION}/glassfish-${GLASSFISH_VERSION}.zip.asc" -o glassfish.zip.asc \
45+
&& curl -fL "https://repo1.maven.org/maven2/org/glassfish/main/distributions/glassfish/${GLASSFISH_VERSION}/glassfish-${GLASSFISH_VERSION}.zip" -o glassfish.zip \
46+
&& export GNUPGHOME="$(mktemp -d)" \
47+
&& gpg --batch --keyserver keyserver.ubuntu.com --recv-keys D4A77129F00F736293BE5A51AFC18A2271EDDFE1 \
48+
&& gpg --batch --verify glassfish.zip.asc glassfish.zip \
49+
&& rm glassfish.zip.asc \
50+
&& echo "$GLASSFISH_DOWNLOAD_SHA512 glassfish.zip" | sha512sum --strict --check \
51+
&& mkdir -p "${PATH_GF_HOME}" \
52+
&& unzip -q glassfish.zip -d "${PATH_GF_HOME}/.." \
53+
&& rm 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+
&& asadmin stop-domain --kill \
77+
&& rm -f ${PATH_GF_SERVER_LOG} ${PATH_GF_PASSWORD_FILE_FOR_CHANGE} \
78+
&& chown -R glassfish:glassfish "${PATH_GF_HOME}" \
79+
&& chmod +x /usr/local/bin/docker-entrypoint.sh \
80+
&& mkdir ${PATH_GF_HOME}/autodeploy \
81+
&& echo "Installation was successful."
82+
83+
USER glassfish
84+
WORKDIR ${PATH_GF_HOME}
85+
ENTRYPOINT ["docker-entrypoint.sh"]
86+
CMD ["startserv"]

7.0.23/docker-entrypoint.sh

+75
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
#!/bin/bash
2+
set -e;
3+
4+
change_passwords () {
5+
local PWD_FILE=/tmp/passwordfile
6+
local COMMAND=
7+
rm -rf $PWD_FILE
8+
9+
if [ x"${AS_ADMIN_PASSWORD}" != x ]; then
10+
echo -e "AS_ADMIN_PASSWORD=admin\nAS_ADMIN_NEWPASSWORD=${AS_ADMIN_PASSWORD}" >> $PWD_FILE
11+
COMMAND="change-admin-password --passwordfile=${PWD_FILE}"
12+
echo "AS_ADMIN_PASSWORD=${AS_ADMIN_PASSWORD}" > "${AS_PASSWORD_FILE}"
13+
fi
14+
15+
if [ x"${AS_ADMIN_MASTERPASSWORD}" != x ]; then
16+
echo -e "AS_ADMIN_MASTERPASSWORD=changeit\nAS_ADMIN_NEWMASTERPASSWORD=${AS_ADMIN_MASTERPASSWORD}" >> ${PWD_FILE}
17+
COMMAND="${COMMAND}
18+
change-master-password --passwordfile=${PWD_FILE} --savemasterpassword=true"
19+
fi
20+
21+
if [ x"${COMMAND}" != x ]; then
22+
printf "${COMMAND}" | asadmin --interactive=false
23+
fi
24+
25+
rm -rf ${PWD_FILE}
26+
}
27+
28+
change_passwords
29+
30+
if [ -f custom/init.sh ]; then
31+
/bin/bash custom/init.sh
32+
fi
33+
34+
if [ -f custom/init.asadmin ]; then
35+
asadmin --interactive=false multimode -f custom/init.asadmin
36+
fi
37+
38+
39+
if [ "$1" != 'asadmin' -a "$1" != 'startserv' -a "$1" != 'runembedded' ]; then
40+
exec "$@"
41+
fi
42+
43+
if [ "$1" == 'runembedded' ]; then
44+
shift 1
45+
if [[ "$SUSPEND" == true ]]
46+
then
47+
JVM_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=9009 $JVM_OPTS"
48+
elif [[ "$DEBUG" == true ]]
49+
then
50+
JVM_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=9009 $JVM_OPTS"
51+
fi
52+
exec java $JVM_OPTS -jar glassfish/lib/embedded/glassfish-embedded-static-shell.jar "$@"
53+
fi
54+
55+
CONTAINER_ALREADY_STARTED="CONTAINER_ALREADY_STARTED_PLACEHOLDER"
56+
if [ ! -f "$CONTAINER_ALREADY_STARTED" ]
57+
then
58+
touch "$CONTAINER_ALREADY_STARTED" &&
59+
rm -rf glassfish/domains/domain1/autodeploy/.autodeploystatus || true
60+
fi
61+
62+
if [ "$1" == 'startserv' ]; then
63+
exec "$@"
64+
fi
65+
66+
on_exit () {
67+
EXIT_CODE=$?
68+
set +e;
69+
ps -lAf;
70+
asadmin stop-domain --force --kill;
71+
exit $EXIT_CODE;
72+
}
73+
trap on_exit EXIT
74+
75+
env|sort && "$@" & wait

7.0.23/dockerlibfile-fragment.txt

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
Tags: 7.0.23, 7.0.23-jdk17, 7.0.23-jdk17-eclipse-temurin
2+
Architectures: amd64, arm64v8
3+
Directory: 7.0.23

7.0.23/docs/README-short.txt

+2
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)