SOLID Docker
厳格な制限
- Dockerfile は読みやすく短く保ちましょう。巨大なレイヤーではなく、ステージに分割してください。
- 実用的な範囲で、1つのイメージにつき1つのサービスの責務にしてください。
プラクティス
- ベースイメージのタグは固定してください(本番環境で floating
latestは避けてください)。 - マルチステージビルドを推奨し、ランタイムイメージを小さく保ってください。
- secrets、トークン、秘密鍵をレイヤーに焼き付けてはいけません。
.dockerignoreを使用して、.venv、data/、.git、ローカル設定ファイルなどを除外してください。- スタックが許せば、最終ステージでは非 root で実行してください。
- ホスト IP をハードコードせず、必要な環境変数をドキュメント化してください。
チェックリスト
- イメージ内に secrets がないこと
- ビルドコンテキストが最小化されていること
- ランタイムイメージが必要なものだけを含んでいること