説明
zypper の使用後、ダウンロード済みパッケージやリポジトリのメタデータがイメージに残る場合があります。実行時に不要なキャッシュは、イメージサイズと転送コストを増やします。
zypper clean は既定でダウンロード済みパッケージのキャッシュを削除します。メタデータも削除するには zypper clean --all を使ってください。
想定される影響
- イメージの転送やデプロイに、より多くの時間や保存容量が必要になる場合があります。
- 後のレイヤーで削除しても、前のレイヤーのキャッシュサイズは残ります。
対処方法
- インストール成功後、同じ RUN 内で zypper clean を実行し、メタデータも不要なら --all を指定してください。
- 一つのレイヤーでインストールと削除を終え、最終イメージのサイズと残ったファイルを確認してください。
例
既存の openSUSE Leap 15.6 の例を保持しています。実際のビルドにはサポート中のイメージとリポジトリを使ってください。変更後は既定のパッケージキャッシュ削除だけを示します。
変更前
dockerfile
FROM opensuse/leap:15.6
RUN zypper install -y nginx
変更後
dockerfile
FROM opensuse/leap:15.6
RUN zypper install -y nginx \
&& zypper clean
補足:
- 変更前: インストール後のキャッシュが残る場合があります。
- 変更後: 同じ RUN でダウンロード済みパッケージのキャッシュを削除します。既定のコマンドは、すべてのメタデータキャッシュまで削除するものではありません。