説明
FROM alpine:latest の latest は公開者が指定する変更可能なタグであり、最も新しいイメージとは限りません。タグが別のイメージを指すと、同じ Dockerfile を再ビルドしても結果が変わる場合があります。
この使い方は再現性を下げ、予期しない変更を本番環境に持ち込む可能性があります。バージョンタグはリリース系列を示しますが、変更される場合もあります。image:latest@sha256:... のように確認済みのダイジェストを指定すると、選択するイメージ内容を固定できます。
想定される影響
- リポジトリの変更で別のベースイメージが選ばれる場合があります。
- 予期しないバージョン変更で互換性の問題が発生する可能性があります。
- 原因調査やロールバックが難しくなります。
対処方法
latestに頼らず、具体的なバージョンタグを使用してください。- 本番やテストなど、用途に応じた明確なタグ方針を定めてください。
- 重要なイメージにはダイジェストも指定してください。
latestタグがあっても、ダイジェストを付ければ選択される内容は固定されます。
例
変更前
dockerfile
FROM alpine:latest
変更後
dockerfile
FROM alpine:3.22
説明:
- 変更前:
latestは固定バージョンではなく、ビルド結果が変わる可能性があります。 - 変更後: 意図したリリース系列を明示します。同一の内容を固定するにはダイジェストを使い、固定したイメージにも継続してセキュリティ更新を適用してください。