# The image every Kubernetes experiment runs: the layered, distroless variant recommended in the # Docker article (spring-boot-demo/docker-images). No shell - which matters for preStop hooks. FROM eclipse-temurin:25-jre AS builder WORKDIR /builder COPY target/app.jar application.jar RUN java -Djarmode=tools -jar application.jar extract --layers --destination extracted FROM gcr.io/distroless/java25-debian13:nonroot WORKDIR /application COPY --from=builder /builder/extracted/dependencies/ ./ COPY --from=builder /builder/extracted/spring-boot-loader/ ./ COPY --from=builder /builder/extracted/snapshot-dependencies/ ./ COPY --from=builder /builder/extracted/application/ ./ ENTRYPOINT ["java", "-jar", "application.jar"]