ベースイメージに latest タグを使用

latest タグを使うと、後の Docker ビルドで異なるベースイメージが選ばれる可能性があります。

説明

FROM alpine:latest の latest は公開者が指定する変更可能なタグであり、最も新しいイメージとは限りません。タグが別のイメージを指すと、同じ Dockerfile を再ビルドしても結果が変わる場合があります。

この使い方は再現性を下げ、予期しない変更を本番環境に持ち込む可能性があります。バージョンタグはリリース系列を示しますが、変更される場合もあります。image:latest@sha256:... のように確認済みのダイジェストを指定すると、選択するイメージ内容を固定できます。

想定される影響

  • リポジトリの変更で別のベースイメージが選ばれる場合があります。
  • 予期しないバージョン変更で互換性の問題が発生する可能性があります。
  • 原因調査やロールバックが難しくなります。

対処方法

  • latest に頼らず、具体的なバージョンタグを使用してください。
  • 本番やテストなど、用途に応じた明確なタグ方針を定めてください。
  • 重要なイメージにはダイジェストも指定してください。latest タグがあっても、ダイジェストを付ければ選択される内容は固定されます。

例

変更前

dockerfile
FROM alpine:latest

変更後

dockerfile
FROM alpine:3.22

説明:

  • 変更前: latest は固定バージョンではなく、ビルド結果が変わる可能性があります。
  • 変更後: 意図したリリース系列を明示します。同一の内容を固定するにはダイジェストを使い、固定したイメージにも継続してセキュリティ更新を適用してください。

参考資料