-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathDockerfile
57 lines (49 loc) · 2.14 KB
/
Dockerfile
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
51
52
53
54
55
ARG CACHE=ghcr.io/scc-digitalhub/aac:cache
FROM ${CACHE} AS cache
FROM maven:3-openjdk-17 AS build
ARG VER=SNAPSHOT
ARG SKIP_TESTS=false
COPY ./src /tmp/src
COPY ./pom.xml /tmp/pom.xml
COPY ./user-console /tmp/user-console
COPY ./dev-console /tmp/dev-console
COPY ./admin-console /tmp/admin-console
WORKDIR /tmp
RUN --mount=type=cache,target=/root/.m2,source=/cache/.m2,from=cache \
--mount=type=cache,target=/tmp/target/node,source=/cache/target/node,from=cache \
--mount=type=cache,target=/tmp/user-console/node_modules,source=/cache/user-console/node_modules,from=cache \
--mount=type=cache,target=/tmp/dev-console/node_modules,source=/cache/dev-console/node_modules,from=cache \
--mount=type=cache,target=/tmp/admin-console/node_modules,source=/cache/admin-console/node_modules,from=cache \
mvn -Drevision=${VER} package -DskipTests=${SKIP_TESTS}
FROM eclipse-temurin:17-jdk-alpine AS builder
WORKDIR /tmp
COPY --from=build /tmp/target/aac.jar aac.jar
RUN java -Djarmode=layertools -jar aac.jar extract
# FROM eclipse-temurin:17-jdk-alpine
# ARG USER=aac
# ARG USER_ID=805
# ARG USER_GROUP=aac
# ARG USER_GROUP_ID=805
# ARG USER_HOME=/home/${USER}
# ENV FOLDER=/tmp/target
# ENV APP=aac.jar
# # create a user group and a user
# RUN addgroup -g ${USER_GROUP_ID} ${USER_GROUP}; \
# adduser -u ${USER_ID} -D -g '' -h ${USER_HOME} -G ${USER_GROUP} ${USER} ;
# WORKDIR ${USER_HOME}
# COPY --chown=aac:aac --from=builder dependencies/ ${USER_HOME}
# COPY --chown=aac:aac --from=builder snapshot-dependencies/ ${USER_HOME}
# COPY --chown=aac:aac --from=builder spring-boot-loader/ ${USER_HOME}
# COPY --chown=aac:aac --from=builder application/ ${USER_HOME}
# USER 805
# ENTRYPOINT ["java", "org.springframework.boot.loader.JarLauncher"]
FROM gcr.io/distroless/java17-debian12:nonroot
ENV APP=aac.jar
WORKDIR /aac
LABEL org.opencontainers.image.source=https://github.com/scc-digitalhub/AAC
COPY --from=builder /tmp/dependencies/ ./
COPY --from=builder /tmp/snapshot-dependencies/ ./
COPY --from=builder /tmp/spring-boot-loader/ ./
COPY --from=builder /tmp/application/ ./
EXPOSE 8080
ENTRYPOINT ["java", "org.springframework.boot.loader.JarLauncher"]