複数のラズパイやVMで大きめ/大量のパッケージをインストールすることがあったので, ラズパイにキャッシュサーバを入れてみました.
環境
- RaspbeeryPi3 Model B(ラズパイ4,5でもやり方は同じだと思います)
- Ubuntu24.04LTS
- Docker/docker-composeは導入済
イメージのビルド
まずはapt-cacher-ngのdockerイメージをbuildします.
$ docker build -t sameersbn/apt-cacher-ng github.com/sameersbn/docker-apt-cacher-ng
...
$ docker images # 確認
設定ファイルの記述
細かいところはお好みで.
services:
apt-cacher-ng:
image: sameersbn/apt-cacher-ng
container_name: apt-cacher-ng
ports:
- "3142:3142"
volumes:
- apt-cacher-ng:/var/cache/apt-cacher-ng
restart: always
volumes:
apt-cacher-ng:
起動と確認
起動してみます.
$ docker-compose up -d
余談ですが, 現在(2024年7月時点)ではUbuntu2404でpython3-dockerが正常に動作しないようです.
$ docker compose up -d
で実行することで回避できます.
確認方法は簡単で,http://{キャッシュサーバのアドレス}:3142
にブラウザでアクセスし, 以下の表示が出たらOK.
利用
キャッシュを利用する側の端末では以下のように設定します.
$ sudo vim /etc/apt/apt.conf.d/01proxy # 新規作成
Acquire::HTTP::Proxy "http://{キャッシュサーバのアドレス}:3142";
Acquire::HTTPS::Proxy "false";
利用する端末でsudo apt update
したあと, サーバのログを確認することで正常にキャッシュ出来ているか確かめられます.
$ docker exec -it apt-cacher-ng tail -f /var/log/apt-cacher-ng/apt-cacher.log