新しいバージョンをプライベート レジストリにプッシュするたびに、docker コンテナーを自動的にアップグレードするために、docker ウォッチタワーを実行したいと考えています。
しかし、watchtower は私のプライベート レジストリでコンテナを見つけません。
プライベート docker レジストリで watchtower を実行する方法を知っている人はいますか?
新しいバージョンをプライベート レジストリにプッシュするたびに、docker コンテナーを自動的にアップグレードするために、docker ウォッチタワーを実行したいと考えています。
しかし、watchtower は私のプライベート レジストリでコンテナを見つけません。
プライベート docker レジストリで watchtower を実行する方法を知っている人はいますか?
更新:このアプローチはまだ機能する可能性がありますが、watchtower ではこれがネイティブにサポートされています。
Watchtower は現在、Docker Hub プライベート レジストリのみをサポートしており、Quay や Gitlab などのオフサイト レジストリはサポートしていません。
別の方法として、 Webhookなどを使用し、使用しているCI/CD プラットフォームからエンドポイントへの HTTP 要求を含めることもできます。
そうすれば、更新を確認する代わりに、変更が行われるたびにエンドポイントに ping を実行して自動更新できます。プルではなくプッシュですが、同様の効果が得られます。
Web サーバーの実行などのスクリプトの例は、次のようになります。
#!/bin/bash
docker pull [your-registry][repo]:latest
docker stop [repo-name]
docker rm [repo-name]
docker run -d --name [repo-name] -p 80:4000 --restart always [your-registry][repo]:latest
これは、最も巧妙な展開方法ではありません。ビルド、テスト、デプロイ パイプラインをより適切に調整できる専用の CI/CD プロバイダーを運用環境で使用することをお勧めします。しかし、これはステージング サーバーを生成する手っ取り早い汚い方法です。