いつ読むか?

  • プロダクトレベルの Dockerfile を開発したいとき
  • Docker のベストプラクティスをキャッチアップしたいとき (2024年07月26日時点)

読書メモ

必須: マルチステージビルド

  • ビルド環境と実行環境を分離し、最終イメージを軽量化

重要テクニック

  • bindマウント: RUN --mount=type=bind,target=. でCOPYを置き換え、レイヤー削減
  • キャッシュマウント: --mount=type=cache,target=/path で依存パッケージを再利用
  • ベースイメージ: Alpineは性能3〜5割低下の可能性、Debian系推奨

設定の使い分け

  • ARG: ビルド時パラメータ
  • ENV: 実行時環境変数(本番値のみ)
  • ENTRYPOINT + CMD: 柔軟な起動制御

便利機能

  • docker build --output=.: バイナリ抽出
  • --secret: 機密情報の安全な受け渡し
  • 並列ビルド: 複数ステージを同時実行