@@ -28,43 +28,25 @@ RUN mvn dependency:go-offline
2828COPY src src
2929RUN mvn package -Dmaven.test.skip=true
3030
31- RUN mkdir -p /build/target/quarkus-app-tmp
32- RUN grep version /build/target/maven-archiver/pom.properties | cut -d '=' -f2 >.env-version
31+ RUN grep version /build/target/maven-archiver/pom.properties | cut -d '=' -f2 >.env-version
3332RUN grep artifactId /build/target/maven-archiver/pom.properties | cut -d '=' -f2 >.env-id
3433
35- # mv the uber jar in case the quarkus property quarkus.package.type=uber-jar is set
36- RUN mv /build/target/$(cat .env-id)-$(cat .env-version)*.jar /build/target/quarkus-app-tmp/
37-
38- FROM registry.access.redhat.com/ubi8/ubi-minimal:8.7-1085
39-
40- ARG JAVA_PACKAGE=java-17-openjdk-devel
41- ARG RUN_JAVA_VERSION=1.3.8
42- ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en'
43- # Install java and the run-java script
44- # Also set up permissions for user `1001`
45- RUN microdnf install curl ca-certificates ${JAVA_PACKAGE} \
46- && microdnf update \
47- && microdnf clean all \
48- && mkdir /deployments \
49- && chown 1001 /deployments \
50- && chmod "g+rwX" /deployments \
51- && chown 1001:root /deployments \
52- && curl https://repo1.maven.org/maven2/io/fabric8/run-java-sh/${RUN_JAVA_VERSION}/run-java-sh-${RUN_JAVA_VERSION}-sh.sh -o /deployments/run-java.sh \
53- && chown 1001 /deployments/run-java.sh \
54- && chmod 555 /deployments/run-java.sh \
55- && echo "securerandom.source=file:/dev/urandom" >> /etc/alternatives/jre/lib/security/java.security
56-
57- # Configure the JAVA_OPTIONS, you can add -XshowSettings:vm to also display the heap size.
58- ENV JAVA_OPTIONS="-Dquarkus.http.host=0.0.0.0 -Dquarkus.http.port=8081 -Djava.util.logging.manager=org.jboss.logmanager.LogManager"
34+ # if this is an uber jar create a structure that looks the same as fast-jar with empty directories
35+ # this allows for the same dockerfile to be used with both
36+ RUN if [ ! -d /build/target/quarkus-app ] ; then mkdir -p /build/target/quarkus-app/lib; \
37+ mkdir -p /build/target/quarkus-app/app; \
38+ mkdir -p /build/target/quarkus-app/quarkus; \
39+ mv /build/target/$(cat .env-id)-$(cat .env-version)*.jar /build/target/quarkus-app/ ; \
40+ fi
41+
42+ FROM registry.access.redhat.com/ubi8/openjdk-17-runtime:1.15
43+ # Configure the JAVA_OPTS, you can add -XshowSettings:vm to also display the heap size.
44+ ENV JAVA_OPTS="-Dquarkus.http.host=0.0.0.0 -Dquarkus.http.port=8081 -Djava.util.logging.manager=org.jboss.logmanager.LogManager"
5945# We make four distinct layers so if there are application changes the library layers can be re-used
60- COPY --from=0 --chown=1001 /build/target/quarkus-app-tmp/*.jar /deployments/export-run-artifact.jar
61- COPY --from=0 --chown=1001 /build/target/*quarkus-app/*lib/ /deployments/lib/
62- # Overwrite the uber jar if package type is normal
63- COPY --from=0 --chown=1001 /build/target/*quarkus-app/*.jar /deployments/export-run-artifact.jar
64- COPY --from=0 --chown=1001 /build/target/*quarkus-app/*app/ /deployments/app/
65- COPY --from=0 --chown=1001 /build/target/*quarkus-app/*quarkus/ /deployments/quarkus/
66-
46+ COPY --from=0 --chown=1001 /build/target/quarkus-app/lib/ /deployments/lib/
47+ COPY --from=0 --chown=1001 /build/target/quarkus-app/*.jar /deployments/export-run-artifact.jar
48+ COPY --from=0 --chown=1001 /build/target/quarkus-app/app/ /deployments/app/
49+ COPY --from=0 --chown=1001 /build/target/quarkus-app/quarkus/ /deployments/quarkus/
6750EXPOSE 8081
68- USER 1001
51+ ENTRYPOINT ["/opt/jboss/container/java/run/run-java.sh"]
6952
70- ENTRYPOINT [ "/deployments/run-java.sh" ]
0 commit comments