web-dev-qa-db-ja.com

Webhookを使用してDockerコンテナーを自動的に更新する

GithubリポジトリとDockerリポジトリを作成しました。両方とも非常にうまく機能します。新しいバージョンのDockerfileをGithubにプッシュすると、新しいイメージがDockerリポジトリ内に自動的に構築されます。

ここで、ベースイメージが(再)ビルドされたときに実行中のコンテナーを自動的に更新したいと思います。

どうすればDocker repos webhookを使用してそれを実現できますか?

10
PJ Bergeron

Century Link Labsチームは、実行中のコンテナーを更新するためにWebフックを使用できる2つの新しいオープンソースツールを開発しました。

彼らの最初のアプリはZodiacで、「プッシュ」展開モデルを使用しています。 Docker Compose の上に構築された軽量ツールで、Docker化されたアプリケーションの展開とロールバックを容易にします。すべてのデプロイメントの履歴を維持し、以前のデプロイメントにロールバックすることもできます。

2番目のアプリWatchtowerは、「プル」展開モデルを使用しています。このモデルにより、ファイアウォールの背後にあるDockerコンテナーは、外部ポートを公開することなく、変更を検出してより安全にプルできます。

ものみの塔は、リンクされたコンテナのセットを適切に再起動する方法を知っています。リンクされたコンテナーのグループの依存関係の1つで更新が検出された場合、Watchtowerはすべてのコンテナーを正しい順序で停止および開始して、アプリケーションが正しく起動するようにします。

Century Link Labsとは関係ありません。

あなたが見たいと思うかもしれないもう一つのより単純なアプリはDocker Pullerです。

3
Tony O'Hagan

より新しいものもあります docker-image-puller

Dockerのソケットに直接接続され、Docker APIを使用して、Webhookで指定したイメージを使用する実行中のコンテナーを更新します。かなりシンプルです。将来的にはオプションを追加できるでしょう。

0
Tuxity