🧰
Dockerfile for Go
書くたびに「どう書いてたっけ?」となるので、覚書として。
Dockerfile 全体
ポイント
マルチステージビルド
go.mod
, go.sum
だけコピーして go mod download
先に ...
COPY go.mod ./
COPY go.sum ./
RUN go mod download
...
distroless container image
イメージサイズが小さく、セキュアであるらしいので採用しました。
現状、使用していて困ったことは特にないです。もし何か踏み抜いた経験がある方は教えていただけると助かります 🙇
FROM gcr.io/distroless/static-debian11:latest
...
latest
を使うと hadolint 君に怒られるのでアノテーションつけてます。
ルートレスコンテナ
distroless コンテナイメージには nonroot
という非特権ユーザが用意されているので利用します。
...
USER nonroot
...
おわりに
できる範囲でベストプラクティスに沿って作成したつもりではありますが、より良い Dockerfile にするためのアドバイスなどあればお願いします 🙇
参考
Discussion