1. マルチステージビルドによる成果物のスリム化
MavenやGradleでのビルド環境と、実行用JRE環境を完全に分離することで、不要なコンパイラやキャッシュをイメージから排除します。
# ビルドステージ
FROM eclipse-temurin:21-jdk-alpine AS builder
WORKDIR /workspace
COPY . .
RUN ./mvnw clean package -DskipTests
# 実行ステージ (超軽量 Distroless / Alpine)
FROM eclipse-temurin:21-jre-alpine
WORKDIR /app
COPY --from=builder /workspace/target/*.jar app.jar
ENTRYPOINT ["java", "-jar", "app.jar"]