説明
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 キャッシュを使用しません。他のコマンドや前のレイヤーのキャッシュは別途確認が必要です。