3

新しいバージョンをプライベート レジストリにプッシュするたびに、docker コンテナーを自動的にアップグレードするために、docker ウォッチタワーを実行したいと考えています。

しかし、watchtower は私のプライベート レジストリでコンテナを見つけません。

プライベート docker レジストリで watchtower を実行する方法を知っている人はいますか?

4

2 に答える 2

0

更新:このアプローチはまだ機能する可能性がありますが、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 プロバイダーを運用環境で使用することをお勧めします。しかし、これはステージング サーバーを生成する手っ取り早い汚い方法です。

于 2016-07-25T18:22:15.673 に答える