-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
40 lines (38 loc) · 1.67 KB
/
Dockerfile
File metadata and controls
40 lines (38 loc) · 1.67 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
FROM bellsoft/liberica-runtime-container:jdk-25.0.3_11-cds-musl@sha256:37e2aaf79caa2476f778e49c2c1e9a117eec3e8a343721e8d3da450236abe508 AS build
WORKDIR /usr/src/app
# cache dependencies
COPY ./buildSrc/*.gradle.kts ./buildSrc/
COPY ./buildSrc/src ./buildSrc/src/
COPY ./client/build.gradle.kts ./client/
COPY ./gradle ./gradle/
COPY ./integration/build.gradle.kts ./integration/
COPY ./server/build.gradle.kts ./server/
COPY ./server/client/build.gradle.kts ./server/client/
COPY ./server/common/build.gradle.kts ./server/common/
COPY ./server/data/build.gradle.kts ./server/data/
COPY ./server/model/build.gradle.kts ./server/model/
COPY ./server/operation/build.gradle.kts ./server/operation/
COPY ./server/service/build.gradle.kts ./server/service/
COPY ./server/web/build.gradle.kts ./server/web/
COPY ./gradlew ./
COPY ./gradle.properties ./
COPY ./settings.gradle.kts ./
RUN --mount=type=cache,target=/root/.gradle \
./gradlew
# build
COPY ./buildSrc ./buildSrc
COPY ./server ./server
ARG BUILD_ARG="bootJar"
RUN --mount=type=cache,target=/root/.gradle \
./gradlew ${BUILD_ARG}
FROM bellsoft/liberica-runtime-container:jre-25.0.3_11-cds-musl@sha256:0f93b56b31f5044bfb0c7dbdb26d86cd107f259b76677eb44b7087e73c51880f AS app
# use non-root user
RUN addgroup -S spring && adduser -S spring -G spring
USER spring:spring
WORKDIR /home/spring
# copy jar and run it
ARG BUILD_ROOT=/usr/src/app
ARG BOOT_JAR=$BUILD_ROOT/server/build/libs/*.jar
COPY --from=build $BOOT_JAR ./app.jar
ENTRYPOINT ["java","-jar","./app.jar"]
EXPOSE 8080