-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
40 lines (31 loc) · 1 KB
/
Dockerfile
File metadata and controls
40 lines (31 loc) · 1 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
# First stage: complete build environment
FROM maven:3.9.7-eclipse-temurin-21 AS builder
ARG PROJECT_PATH
ARG NEXUS_USERNAME
ARG NEXUS_PASSWORD
ENV PROJECT_PATH=${PROJECT_PATH}
ENV NEXUS_USERNAME=${NEXUS_USERNAME}
ENV NEXUS_PASSWORD=${NEXUS_PASSWORD}
# Add internal-ca cert
COPY internal-ca.crt /tmp/internal-ca.crt
# Import internal-ca.crt into java truststore if it's not empty
RUN if [ -s /tmp/internal-ca.crt ]; then \
keytool -importcert -trustcacerts -file /tmp/internal-ca.crt \
-alias corp-ca -keystore $JAVA_HOME/lib/security/cacerts \
-storepass changeit -noprompt; \
fi
# add pom.xml and source code
COPY ./pom.xml pom.xml
COPY ./src src/
# add maven config
ENV MAVEN_CONFIG=/maven/.m2
RUN mkdir -p ${MAVEN_CONFIG}
COPY settings.xml ${MAVEN_CONFIG}/settings.xml
RUN mvn clean package \
-s ${MAVEN_CONFIG}/settings.xml \
-Dmaven.test.skip=true
FROM gcr.io/distroless/java21:nonroot
WORKDIR /app
COPY --from=builder target/*.jar /app/app.jar
CMD ["-jar", "/app/app.jar"]
EXPOSE 8080