devops(backend): switch to multi-stage Docker build #238

Merged
marcel merged 4 commits from devops/multi-stage-docker-build into main 2026-04-15 11:33:04 +02:00
Showing only changes of commit 3865a9c113 - Show all commits

View File

@@ -1,4 +1,4 @@
FROM eclipse-temurin:21-jdk AS builder
FROM eclipse-temurin:21.0.10_7-jdk-noble AS builder
WORKDIR /app
# Copy wrapper and POM first — dependency layer is cached separately from source
@@ -7,10 +7,12 @@ COPY mvnw pom.xml ./
RUN --mount=type=cache,target=/root/.m2 ./mvnw dependency:go-offline -q
COPY src ./src
RUN --mount=type=cache,target=/root/.m2 ./mvnw clean package -DskipTests -q
# -Dmaven.test.skip=true skips test compilation entirely (not just execution)
RUN --mount=type=cache,target=/root/.m2 ./mvnw clean package -Dmaven.test.skip=true -q
FROM eclipse-temurin:21-jre
FROM eclipse-temurin:21.0.10_7-jre-noble
WORKDIR /app
# Spring Boot repackages to *.jar; pre-repackage artifact uses .jar.original, not .jar
COPY --from=builder /app/target/*.jar app.jar
EXPOSE 8080
CMD ["java", "-jar", "app.jar"]