ラズパイ+Ubuntu2404+Docker+apt-cacher-ngでaptキャッシュサーバを構築

Ubuntu24.04とapt-cacher-ngで簡単にキャッシュサーバを構築

複数のラズパイや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

参考: https://hub.docker.com/r/sameersbn/apt-cacher-ng