コンテナデプロイツールKamalでlocal registryが利用可能になりました。
今まではDocker Hubなどのコンテナレジストリをセットアップする必要がありました。 local registryが利用可能になったので、よりシンプルにKamalを利用できます。
https://kamal-deploy.org/docs/configuration/docker-registry/
利用方法
Local registryの使い方はとても簡単でです。
registryの設定でlocalhost:5555を指定するだけ。
registry: server: localhost:5555localhostを指定するだけでKamal deploy時に自動でlocal registryが立ち上がります。
kamal deploy後にdocker psしてみるとregistryが立ち上がっていることがわかります。
docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMEScb5aca8d0563 registry:3 "/entrypoint.sh /etc…" 27 minutes ago Up 15 minutes 127.0.0.1:5555->5000/tcp kamal-docker-registryab40cd2041ce moby/buildkit:buildx-stable-1 "buildkitd --allow-i…" 14 hours ago Up 15 minutes buildx_buildkit_kamal-local-registry-docker-container0https://hub.docker.com/_/registry
deploy時の注意
私は開発環境としてWindowsのWSL2を使っています。 そこでKamal deployをすると次のようなエラーが発生してしまいました。
Errno::ECONNREFUSED: Connection refused - connect(2) for "localhost" port 5555どうやらホストにgem install kamalで入れたkamalだとうまくいかないようです。 Railsプロジェクトであればbin/kamalを使うようにします。
つまり次のコマンドだとうまくいきました。
bin/kamal deployDevContainer使用時の注意点
VSCodeのDevcontainerでkamal deployするときの注意点です。 Railsが生成する.devcontainer/devcontainer.jsonはdocker out side of dockerになっていますが、docker in dockerに変更します。

"features": { "ghcr.io/devcontainers/features/docker-in-docker:2": {"moby":false}, },まとめ
kamal 2.8系でlocal registryが導入されたので、Docker Hubなどのコンテナレジストリ不要でデプロイできるようになりました。 より気軽にKamalを使えるようになりましたね! ぜひKamalを使ってデプロイしてみてください!