2025/11/23

aptパッケージのキャッシュ

Dockerfileを作っているとき、多くの場合は試行錯誤するので、何度も何度もaptとかapt-getとかでパッケージのダウンロードを行うことになります。

通信回線が高速で苦にならないのならそのままでも良いのですが、パッケージの数が多い場合など、待ち時間が長くなってしまいます。

そこで、apt-cacher-ngを使ってみます。

使い方は以下の通り。

  1. Dockerのホスト側で
    sudo apt install apt-cacher-ng
    などとして、apt-cacher-ngをインストールします。
  2. 設定ファイルは /etc/apt-cacher-ng/acng.conf にあるので、必要があれば書き換えます。ここではデフォルトのまま使います。
  3. サーバが起動しているかどうかやキャッシュの状況などは http://localhost:3142/acng-report.html にブラウザでアクセスすることで確認できます。
  4. 以下のようなコードをDockerfileに追記します。
    FROM ubuntu:24.04
    
    ARG USE_CACHE=false
    ARG APT_CACHE_SERVER=127.0.0.1
    
    # キャッシュを使う場合のみ設定を追加
    RUN if [ "$USE_CACHE" = "true" ]; then \
          echo "Acquire::http { Proxy \"http://${APT_CACHE_SERVER}:3142\"; };" > /etc/apt/apt.conf.d/01proxy; \
        fi
    
  5. 次のようにオプションを指定してビルドします。
    docker build --build-arg USE_CACHE=true --build-arg APT_CACHE_SERVER=[ホストのIPアドレス] .
    

0 件のコメント :