コンテナーイメージに含まれる pip キャッシュの確認

最終イメージに不要な pip キャッシュを残さないでください。

説明

pip install はダウンロード応答やビルドした wheel などをキャッシュできます。最終イメージに含まれると、実行時に不要なファイルがイメージを大きくする場合があります。

ビルドキャッシュは再ダウンロードや再ビルドを減らします。BuildKit のキャッシュマウントのように最終イメージの外で管理する場合は、キャッシュの維持が適切なこともあります。

想定される影響

  • 不要なキャッシュにより、イメージサイズや保存・転送コストが増える場合があります。
  • キャッシュをすべて無効にすると、繰り返すビルドの時間やネットワーク使用量が増える場合があります。

対処方法

  • キャッシュがイメージレイヤーに残る通常のインストールでは、pip install --no-cache-dir を使うか、最終イメージの外にビルドキャッシュを構成してください。
  • 最終イメージにキャッシュが含まれるか確認してください。--no-cache-dir はそのコマンドのキャッシュ使用を無効にしますが、前のレイヤーのキャッシュは削除しません。

例

pip キャッシュ設定だけを比較します。flask と requests のバージョン固定や更新方針は別途管理してください。

変更前

dockerfile
FROM python:3.12-slim

RUN pip install flask requests

変更後

dockerfile
FROM python:3.12-slim

RUN pip install --no-cache-dir flask requests

補足:

  • 変更前: 既定の pip キャッシュがイメージに含まれる場合があります。
  • 変更後: このインストールでは pip キャッシュを使用しません。他のコマンドや前のレイヤーのキャッシュは別途確認が必要です。

参考資料