mastodon.cardina1.red は、数々の独立したMastodonサーバーのうちのひとつです。サーバーに登録してFediverseのコミュニティに加わってみませんか。

サーバーの情報

3
人のアクティブユーザー

docker で透過的なプロキシを設定する方法を調べていたが、どうにもよくわからんな

/etc/docker/daemon.json で registry-mirrors を設定するらしいというところまではわかるのだが、これを複数のレジストリに対して透過的な pull through キャッシュプロキシを設定するのに使えるかがわからん

たとえばひとつの “レジストリミラー” から ghcr.io, quay.io, hub.docker.com の3つのレジストリへの pull をキャッシュしてやれると嬉しいわけだが、そういうことはできるようになっているのだろうか?

buildkit だか何だかはレジストリごとに設定できるようなのだが、 Docker 本体にそういう記述がないのでよくわからない。プロキシ側の工夫でどうにかできるのなら良いのだが。

結論としては、 registry-mirrors 設定は "central Hub" (つまり Docker Hub) にしか対応しておらず、ミラーレジストリ側が対応していようが dockerd からそれを透過的に使わせることはできない、と。

となると、次に考えられる手は /etc/hosts で諸々のレジストリの名前がキャッシュプロキシを指すようにして……みたいな方向なんだが、さすがに嫌だな (CI 環境をそんなに激しく弄りたくない)

そもそも Woodpecker agent が勝手に起動する docker container に対してそういうことが簡単にできるかすら若干怪しい (できたとしてやりたくない可能性が高い)

How to configure a Docker Hub proxy with Harbor? | Smile
smile.eu/en/publications-and-e

Podman を使えば "prefix/location feature" でマッピングできるらしい。 Woodpecker 側ではこいつを使ってみるか……

smile.euHow to configure a Docker Hub proxy with Harbor? | Smile

Podman は移行しようとしてみたこともありつつ、結局 docker compose 系のエコシステムを捨てて k8s ライクなものを使ってくださいということになっていたのに適合できなくて諦めてしまったことがある

らりお・ザ・何らかの🈗然㊌ソムリエ

Woodpecker CI の agent に podman 経由で Harbor のキャッシュプロキシを使わせることに成功した。これでコンテナや agent を破壊しまくったり毎日 podman system prune で GC しても大丈夫