PCD#130(building)

PCD#130(building)

コンテナ ベスト プラクティスとしてイメージサイズと起動を最適化したい。Java アプリのビルドで採用すべき手法は。

正解:C

正解の根拠

Google の distroless イメージは OS パッケージや shell を含まず最小構成。多段ビルド (multi-stage build) でビルド成果物のみコピーすることで攻撃面とサイズを削減。

FROM maven:3-eclipse-temurin-17 AS build
COPY . . 
RUN mvn package
FROM gcr.io/distroless/java17
COPY --from=build /app/target/app.jar /app.jar
CMD ["/app.jar"]

不正解の理由

選択肢問題点
Aubuntu:latest はサイズが大きくビルドツール同梱は本番用途で過剰
Bソースと Maven 同梱はサイズと攻撃面が増える
DJDK 全部入りは JRE のみで十分な本番では肥大化する

参考:Google Cloud Run ドキュメント


コメント

コメント

コメントする

目次