|
| 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"] |
0 commit comments