Last active
February 27, 2020 15:01
-
-
Save pdudits/c2eafaff92f2139f1ed5b67ea71f733a to your computer and use it in GitHub Desktop.
CDS-enabled Payara Micro docker image
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
FROM azul/zulu-openjdk-alpine:11.0.6 | |
ENV PAYARA_HOME=/opt/payara | |
# Create and set the Payara user and working directory owned | |
# by the new user | |
RUN addgroup payara && \ | |
adduser -D -h ${PAYARA_HOME} -H -s /bin/bash payara -G payara && \ | |
echo payara:payara | chpasswd && \ | |
mkdir -p ${PAYARA_HOME} && \ | |
chown -R payara:payara ${PAYARA_HOME} | |
USER payara | |
WORKDIR ${PAYARA_HOME} | |
COPY payara-micro.jar ${PAYARA_HOME}/payara-micro.jar | |
COPY app.war ${PAYARA_HOME} | |
# 1. Create micro-root/launch-payara.jar | |
RUN java -jar payara-micro.jar --rootdir micro-root --outputlauncher && \ | |
# 2. payara-micro.jar is not needed anymore | |
rm ${PAYARA_HOME}/payara-micro.jar && \ | |
# 3. Deploy the application, and collect classes to put | |
# into CDS archive | |
java -XX:DumpLoadedClassList=classes.lst \ | |
-jar micro-root/launch-micro.jar \ | |
--deploy app.war:/ --warmup && \ | |
# 4. Create CDS archive payara.jsa | |
java -Xshare:dump -XX:SharedClassListFile=classes.lst \ | |
-XX:SharedArchiveFile=payara.jsa \ | |
-jar micro-root/launch-micro.jar && \ | |
# 5. Cleanup - application is already in root directory | |
rm -rf classes.lst app.war | |
# Productive run, no explicit deployment necessary | |
ENTRYPOINT ["java", "-XX:MaxRAMPercentage=90.0", \ | |
"-Xshare:on", "-XX:SharedArchiveFile=payara.jsa", \ | |
"-jar", "micro-root/launch-micro.jar"] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment