Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 47 additions & 0 deletions images/embedded/8.0.4/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
FROM eclipse-temurin:21-jdk

LABEL org.opencontainers.image.base.name="eclipse-temurin:21-jdk"
LABEL org.opencontainers.image.source="https://github.com/eclipse-ee4j/glassfish.docker"
LABEL org.opencontainers.image.url="https://github.com/eclipse-ee4j/glassfish.docker/wiki"

LABEL org.opencontainers.image.title="Embedded Eclipse GlassFish"
LABEL org.opencontainers.image.description="The Official Eclipse Docker Image for Embedded GlassFish"
LABEL org.opencontainers.image.version="8.0.4"

LABEL org.opencontainers.image.authors="glassfish-dev@eclipse.org"
LABEL org.opencontainers.image.vendor="Eclipse Foundation"
LABEL org.opencontainers.image.licenses="EPL-2.0"

EXPOSE 8080 8181

# You should use own credentials and own files! These are just defaults.
ARG UID=1000 \
GID=1000
ENV PATH_GF_HOME=/opt/glassfish
ENV GLASSFISH_DOWNLOAD_SHA512=5f8dbc961f6555acf541b29e4f5d10b86396644c89334ed55b8357216546676024203a16baa9863cc4d19dcb06b1653c4376aee680d8a740602147c6aca49d73 \
GLASSFISH_VERSION=8.0.4 \
PATH_GF_JAR=${PATH_GF_HOME}/glassfish-embedded-all.jar

RUN true \
&& set -x \
&& mkdir -p "${PATH_GF_HOME}" \
&& curl -fL "https://repo1.maven.org/maven2/org/glassfish/main/extras/glassfish-embedded-all/${GLASSFISH_VERSION}/glassfish-embedded-all-8.0.4.jar.asc" -o glassfish-embedded-all.jar.asc \
&& curl -fL "https://repo1.maven.org/maven2/org/glassfish/main/extras/glassfish-embedded-all/${GLASSFISH_VERSION}/glassfish-embedded-all-8.0.4.jar" -o "${PATH_GF_HOME}"/glassfish-embedded-all.jar \
&& export GNUPGHOME="$(mktemp -d)" \
&& gpg --batch --keyserver keyserver.ubuntu.com --recv-keys D4A77129F00F736293BE5A51AFC18A2271EDDFE1 \
&& gpg --batch --verify glassfish-embedded-all.jar.asc "${PATH_GF_HOME}"/glassfish-embedded-all.jar \
&& rm glassfish-embedded-all.jar.asc \
&& echo "$GLASSFISH_DOWNLOAD_SHA512 "${PATH_GF_HOME}"/glassfish-embedded-all.jar" | sha512sum --strict --check \
&& userdel -r ubuntu \
&& groupadd -g ${GID} glassfish \
&& useradd -r -l -u ${UID} -g ${GID} -d "${PATH_GF_HOME}" -s /bin/bash glassfish \
&& env | sort \
&& mkdir -p "/deploy" \
&& ln -s "/deploy" "${PATH_GF_HOME}/autodeploy" \
&& chown -R glassfish:glassfish "/deploy" \
&& chown -R glassfish:glassfish "${PATH_GF_HOME}" \
&& echo "Installation was successful."

USER glassfish
WORKDIR ${PATH_GF_HOME}
ENTRYPOINT ["java", "-jar", "glassfish-embedded-all.jar"]
73 changes: 73 additions & 0 deletions images/server/8.0.4/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
FROM eclipse-temurin:21-jdk

LABEL org.opencontainers.image.base.name="eclipse-temurin:21-jdk"
LABEL org.opencontainers.image.source="https://github.com/eclipse-ee4j/glassfish.docker"
LABEL org.opencontainers.image.url="https://github.com/eclipse-ee4j/glassfish.docker/wiki"

LABEL org.opencontainers.image.title="Eclipse GlassFish"
LABEL org.opencontainers.image.description="The Official Eclipse GlassFish Docker Image"
LABEL org.opencontainers.image.version="8.0.4"

LABEL org.opencontainers.image.authors="glassfish-dev@eclipse.org"
LABEL org.opencontainers.image.vendor="Eclipse Foundation"
LABEL org.opencontainers.image.licenses="EPL-2.0"

EXPOSE 4848 9009 8080 8181 8686 3700 3820 3920 6666

# You should use own credentials and own files! These are just defaults.
ARG AS_ADMIN_PASSWORD=admin \
AS_ADMIN_MASTERPASSWORD=changeit \
UID=1000 \
GID=1000
ENV PATH_GF_HOME="/opt/gfinstall" \
AS_HOSTNAME="localhost" \
AS_ADMIN_HOST="localhost" \
AS_NO_REVERSE_DNS="true" \
AS_ADMIN_PORT=4848 \
AS_ADMIN_USER=admin \
AS_DOMAIN_NAME=domain1
ENV AS_ADMIN_PASSWORDFILE="${PATH_GF_HOME}/password.txt" \
AS_TRACE=false \
AS_TRACE_LOGGING=false \
AS_TRACE_BOOTSTRAP=false \
AS_STOP_TIMEOUT=9500 \
GLASSFISH_DOWNLOAD_SHA512=ed4470e70a0f93929e4ae85fd1dcaeba7b838d1af9cda4a89f8f5c38d51a3eb1449a77deb4d74b031625a9e7a97dd4b10a6ca2df6fb0c4bd9e28a2bc35c2dcc6 \
GLASSFISH_VERSION=8.0.4 \
PATH_GF_BIN="${PATH_GF_HOME}/bin" \
PATH_GF_DOMAIN="${PATH_GF_HOME}/glassfish/domains/${AS_DOMAIN_NAME}"
ENV PATH_GF_SERVER_LOG="${PATH_GF_DOMAIN}/logs/server.log" \
PATH="${PATH_GF_BIN}:${PATH}"

RUN true \
&& set -x \
&& TMPDIR=$(mktemp -d /opt/gfXXXX) \
&& cd "$TMPDIR" \
&& curl -fL "https://repo1.maven.org/maven2/org/glassfish/main/distributions/glassfish/${GLASSFISH_VERSION}/glassfish-8.0.4.zip" -o glassfish.zip \
&& curl -fL "https://repo1.maven.org/maven2/org/glassfish/main/distributions/glassfish/${GLASSFISH_VERSION}/glassfish-8.0.4.zip.asc" -o glassfish.zip.asc \
&& export GNUPGHOME="$(mktemp -d)" \
&& gpg --batch --keyserver keyserver.ubuntu.com --recv-keys D4A77129F00F736293BE5A51AFC18A2271EDDFE1 \
&& gpg --batch --verify glassfish.zip.asc glassfish.zip \
&& rm glassfish.zip.asc \
&& echo "$GLASSFISH_DOWNLOAD_SHA512 glassfish.zip" | sha512sum --strict --check \
&& jar -xf glassfish.zip \
&& cd \
&& mkdir -p "${PATH_GF_HOME}" \
&& cp -r "$TMPDIR"/*/* "${PATH_GF_HOME}/" \
&& rm -rf "$TMPDIR" \
&& rm -rf "${PATH_GF_DOMAIN}" \
&& userdel -r ubuntu \
&& groupadd -g ${GID} glassfish \
&& useradd -r -l -u ${UID} -g ${GID} -d "${PATH_GF_HOME}" -s /bin/bash glassfish \
&& mkdir -p "/deploy/bundles" \
&& chown -R glassfish:glassfish "/deploy" \
&& chown -R glassfish:glassfish "${PATH_GF_HOME}" \
&& chmod u+x $(find "${PATH_GF_HOME}" -type f -name "asadmin" -o -name "nadmin" -o -name "startserv" -o -name "*.sh") \
&& chmod -R go-rwx "${PATH_GF_HOME}" \
&& echo "Installation was successful."

COPY --chmod=700 --chown=glassfish docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh

USER glassfish
WORKDIR ${PATH_GF_HOME}
ENTRYPOINT ["docker-entrypoint.sh"]
CMD ["startserv"]
87 changes: 87 additions & 0 deletions images/server/8.0.4/docker-entrypoint.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
#!/bin/bash -e

create_domain() {
local AS_PASSWORDFILE_CHANGE=/tmp/passwordfile
local SAVE_MASTER_PASSWORD;
echo -e "AS_ADMIN_PASSWORD=${AS_ADMIN_PASSWORD}" > "${AS_PASSWORDFILE_CHANGE}"
if [ "${AS_ADMIN_MASTERPASSWORD}" == "" ] || [ "${AS_ADMIN_MASTERPASSWORD}" == "changeit" ]; then
SAVE_MASTER_PASSWORD=false
echo -e "AS_ADMIN_MASTERPASSWORD=changeit" >> ${AS_PASSWORDFILE_CHANGE}
else
SAVE_MASTER_PASSWORD=true
echo -e "AS_ADMIN_MASTERPASSWORD=${AS_ADMIN_MASTERPASSWORD}" >> ${AS_PASSWORDFILE_CHANGE}
fi
echo -e "AS_ADMIN_PASSWORD=${AS_ADMIN_PASSWORD}" > "${AS_ADMIN_PASSWORDFILE}"
asadmin --passwordfile "${AS_PASSWORDFILE_CHANGE}" create-domain --savemasterpassword ${SAVE_MASTER_PASSWORD} --keytooloptions CN="${AS_HOSTNAME}" "${AS_DOMAIN_NAME}"
rm -rf "${PATH_GF_DOMAIN}/autodeploy"
ln -s /deploy "${PATH_GF_DOMAIN}/autodeploy"

asadmin start-domain ${AS_DOMAIN_NAME}
local AS_COMMANDFILE=/tmp/commandfile
echo -e "\
set-log-attributes org.glassfish.main.jul.handler.GlassFishLogHandler.enabled=false\n
set-log-attributes org.glassfish.main.jul.handler.SimpleLogHandler.level=FINEST\n
" > "${AS_COMMANDFILE}"
if [ "${AS_ADMIN_PASSWORD}" != "" ]; then
echo -e "enable-secure-admin\n" >> "${AS_COMMANDFILE}"
fi
cat "${AS_COMMANDFILE}"
asadmin --passwordfile=${AS_ADMIN_PASSWORDFILE} multimode --file "${AS_COMMANDFILE}"
sleep 1
asadmin --passwordfile=${AS_ADMIN_PASSWORDFILE} stop-domain "${AS_DOMAIN_NAME}"
rm -f "${PATH_GF_SERVER_LOG}"
}

on_exit () {
EXIT_CODE=$?
set +e;
asadmin stop-domain --echo --force --kill "${AS_DOMAIN_NAME}"
exit $EXIT_CODE;
}

if [ -d "${PATH_GF_DOMAIN}" ]; then
FIRST_RUN=false
else
FIRST_RUN=true
fi

trap on_exit EXIT

if $FIRST_RUN; then
create_domain
fi

if [ ! "${AS_ADMIN_PASSWORD}" == "" ]; then
export AS_ADMIN_SECURE=true
fi

unset AS_ADMIN_PASSWORD
unset AS_ADMIN_MASTERPASSWORD
unset AS_ADMIN_USER
env | sort

if [ -f custom/init.sh ]; then
/bin/bash custom/init.sh
fi

if [ -f custom/init.asadmin ]; then
asadmin --passwordfile=${AS_ADMIN_PASSWORDFILE} --interactive=false multimode -f custom/init.asadmin
fi


if [ "$1" != 'asadmin' -a "$1" != 'startserv' ]; then
exec "$@"
fi

if $FIRST_RUN; then
rm -rf "${PATH_GF_DOMAIN}/autodeploy/.autodeploystatus"
history -c
fi

echo "STARTING DOMAIN!"
echo "Name: ${AS_DOMAIN_NAME}, $@"
if [ "$1" == 'startserv' ]; then
exec "$@"
fi

"$@" & wait
3 changes: 3 additions & 0 deletions images/server/8.0.4/dockerlibfile-fragment.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Tags: 8.0.4, 8.0.4-jdk21, 8.0.4-jdk21-eclipse-temurin
Architectures: amd64, arm64v8
Directory: images/server/8.0.4
2 changes: 2 additions & 0 deletions images/server/8.0.4/docs/README-short.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Eclipse GlassFish is a Jakarta EE Full Profile compatible implementation.

Loading
Loading