spring-boot-deployment
Spring Boot deployment and containerization
This skill covers "how do you actually ship this" — the container image and the Kubernetes manifest around it. It assumes the application-level concerns are already handled elsewhere: health check definitions live in spring-boot-observability, cold-start/CDS/native-image tuning lives in spring-boot-performance's references/startup-and-native-image.md, and secrets/config externalization lives in spring-boot-security. This file is where those pieces get wired into an actual Dockerfile and Deployment YAML.
Layered jar Dockerfile
A Spring Boot fat jar changes on every build, but most of its bytes (third-party dependencies) don't change between builds. A naive single-COPY Dockerfile invalidates Docker's layer cache — and re-uploads the whole jar to a registry — on every code change, even a one-line fix. Spring Boot's built-in layering solves this:
# --- Build stage ---
FROM eclipse-temurin:25-jdk-alpine AS build
WORKDIR /app
COPY . .
RUN ./mvnw -B package -DskipTests