説明
dnf install は、パッケージのメタデータやキャッシュをイメージレイヤーに残す場合があります。実行時に不要なキャッシュは、イメージサイズと保存・転送コストを増やします。
後の RUN で削除しても、前のレイヤーのサイズは減りません。同じレイヤーでインストールと削除を終えることで、そのキャッシュが残るのを抑えられます。
想定される影響
- 保存容量や転送・デプロイ時間が増える場合があります。
- 不要なキャッシュによりイメージ管理の負担が増える場合があります。
対処方法
- dnf install の後に、同じ RUN 内で dnf clean all を実行してください。
- 残ったキャッシュと最終イメージサイズを確認してください。キャッシュ削除は、インストール済みパッケージのセキュリティ更新の代わりにはなりません。
例
既存の Fedora 40 の例を保持したコマンド比較です。実際のビルドにはサポート中のベースとリポジトリを選び、nginx パッケージが提供されていることを確認してください。
変更前
dockerfile
FROM fedora:40
RUN dnf install -y nginx
変更後
dockerfile
FROM fedora:40
RUN dnf install -y nginx \
&& dnf clean all
補足:
- 変更前: インストールキャッシュがイメージに残る場合があります。
- 変更後: インストール成功後、同じ RUN で dnf キャッシュを削除します。前のレイヤーに保存済みのファイルのサイズまでは減りません。