動かざることバグの如し

近づきたいよ 君の理想に

dockerでsquidプロキシサーバーを構築する

dockerでsquidを動かしたいのでDockerfile作った

使い方

git clone

git clone https://github.com/thr3a/squid-docker-compose/tree/master

で、実行するだけ

cd squid-docker-compose
docker-compose up

あとは

# squidのデフォルトのポートが3128
curl example.com --proxy localhost:3128

で確認できる。

カスタマイズ

設定をオレオレ仕様にしたいってのは当然あるはずで、カスタム性を高めた(つもり

手元にすでにsquid.confがある場合、デフォルトの設定は/etc/squid/conf.d/default.confに書かれているので、

volumes:
  - "./squid.conf:/etc/squid/conf.d/default.conf"

をdocker-compose.ymlに書いてあげればそれをロードしてsquidが起動する。

工夫した点

パーミッション

squidは仕様上squidユーザーで起動してしまうのでパーミッション周りがroot前提のalpineでやろうとするとちょいちょいPermission deniedで怒られる。

ので、

RUN install -d -o squid -g squid \
        /var/cache/squid \
        /var/log/squid \
        /var/run/squid && \
    chmod +x /usr/lib/squid/*

で作ってる。

設定の柔軟性

上記にもあったが、カスタマイズしやすいようにしている。squidはデフォルトで/etc/squid/squid.confをロードするので、/etc/squid/squid.confの中身を

echo 'include /etc/squid/conf.d/*.conf' > /etc/squid/squid.conf

にして、複数ファイルをロードできるようにした。squid-log.confではアクセスログを標準出力に流す設定にしたので基本いじらなくていいと思う。