Companion code for "Deploying Spring Boot 4 on Kubernetes: Probes, Graceful Shutdown, Limits and JVM Ergonomics". A dependency outage under three probe-group setups, a rolling restart under load four ways (three runs each), the JVM's ergonomic choices for nine pod shapes, one GC-heavy load under five CPU limits with throttling counters, and an HPA driven by a Micrometer gauge through prometheus-adapter. Measured on k3s v1.36.4. Co-Authored-By: Claude Opus 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01C3TETMrqVUWeFkNtz3Jbo3
15 lines
725 B
Docker
15 lines
725 B
Docker
# 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"]
|