-
Notifications
You must be signed in to change notification settings - Fork 72
Expand file tree
/
Copy pathDockerfile.acceptance-test.multistage
More file actions
50 lines (39 loc) · 1.91 KB
/
Copy pathDockerfile.acceptance-test.multistage
File metadata and controls
50 lines (39 loc) · 1.91 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
## Stage 1 : build with maven builder image
FROM registry.access.redhat.com/ubi9/openjdk-21:1.24-2.1779791379 AS build
ARG MAVEN_BUILD_EXTRA_ARGS=
RUN echo "$MAVEN_BUILD_EXTRA_ARGS"
USER root
RUN microdnf install -y unzip && microdnf clean all
USER 185
COPY mvnw pom.xml maven-settings.xml* /usr/src/app/
COPY acceptance-test/pom.xml /usr/src/app/acceptance-test/
COPY .mvn /usr/src/app/.mvn
RUN cd /usr/src/app/ && ./mvnw verify clean -Dacceptance-test --fail-never
COPY acceptance-test/src /usr/src/app/acceptance-test/src
USER root
RUN chown -R 185 /usr/src/app
USER 185
RUN cd /usr/src/app/ && ./mvnw clean package -Dacceptance-test -DskipTests $MAVEN_BUILD_EXTRA_ARGS
## Stage 2 : create the docker final image
FROM mcr.microsoft.com/playwright:v1.61.1-noble
ARG JAVA_PACKAGE=openjdk-17-jre-headless
ARG MAVEN_EXTRA_ARGS=
RUN echo "$MAVEN_EXTRA_ARGS"
ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' QUARKUS_LOCAL_REPO=/tmp/.m2 PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
RUN apt-get update \
&& apt-get install -y curl ${JAVA_PACKAGE} ca-certificates \
&& apt-get update \
&& mkdir /.cache \
&& chown 185:root /.cache \
&& chmod "g+rwX" /.cache
# We make four distinct layers so if there are application changes the library layers can be re-used
COPY --from=build --chown=185 usr/src/app/acceptance-test/target/quarkus-app/lib/ /deployments/lib/
COPY --from=build --chown=185 usr/src/app/acceptance-test/target/quarkus-app/app/ /deployments/app/
COPY --from=build --chown=185 usr/src/app/acceptance-test/target/quarkus-app/*.jar /deployments/
COPY --from=build --chown=185 usr/src/app/acceptance-test/target/quarkus-app/quarkus/ /deployments/quarkus/
EXPOSE 8080
USER 185
ENV AB_JOLOKIA_OFF=""
ENV JAVA_OPTS="-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager -Dfile.encoding=UTF-8 $MAVEN_EXTRA_ARGS"
ENV JAVA_APP_JAR="/deployments/quarkus-run.jar"
ENTRYPOINT java $JAVA_OPTS -jar $JAVA_APP_JAR