説明
apt-get update で取得したパッケージ一覧は /var/lib/apt/lists に残ります。実行時に不要な一覧を保持すると、イメージサイズが大きくなる場合があります。
イメージ最適化と運用効率に関する事項です。後の RUN で削除しても前のレイヤーは小さくならないため、同じレイヤーでインストールと削除を終える必要があります。
想定される影響
- 不要なパッケージ一覧により、保存容量やイメージ転送時間が増える場合があります。
- 別レイヤーで削除すると、期待したサイズ削減が得られない場合があります。
対処方法
- apt-get install の後、同じ RUN 内で rm -rf /var/lib/apt/lists/* を実行してください。
- apt-get clean はダウンロード済みのパッケージアーカイブを削除する命令なので、一覧削除とは区別してください。後で追加インストールする場合はインデックスを再更新してください。
例
インストール後の一覧削除だけを比較します。パッケージのバージョン管理とセキュリティ更新は別途継続してください。
変更前
dockerfile
FROM ubuntu:24.04
RUN apt-get update \
&& apt-get install -y --no-install-recommends python3
変更後
dockerfile
FROM ubuntu:24.04
RUN apt-get update \
&& apt-get install -y --no-install-recommends python3 \
&& rm -rf /var/lib/apt/lists/*
補足:
- 変更前: インストールに使ったパッケージ一覧がレイヤーに残ります。
- 変更後: インストール成功後、同じ RUN で一覧を削除し、最終レイヤーに不要な一覧を残さないようにします。