Skip to content

Commit 9c77a07

Browse files
authored
Merge pull request #15 from stuartwdouglas/fast-and-uber
Make dockerfile work for both Uberjar and fast-jar
2 parents 981e8b3 + 4f949d0 commit 9c77a07

File tree

1 file changed

+17
-35
lines changed

1 file changed

+17
-35
lines changed

src/main/docker/Dockerfile.jvm.staged

Lines changed: 17 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -28,43 +28,25 @@ RUN mvn dependency:go-offline
2828
COPY src src
2929
RUN 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
3332
RUN 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/
6750
EXPOSE 8081
68-
USER 1001
51+
ENTRYPOINT ["/opt/jboss/container/java/run/run-java.sh"]
6952

70-
ENTRYPOINT [ "/deployments/run-java.sh" ]

0 commit comments

Comments
 (0)