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


10

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

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

Docker repos webhookを使用してそれをどのように達成できますか?


1
Webhookを使用せずに同じことを達成する「簡単な」方法(これと同じくらい簡単)がある場合は、私も興味があります。:)
PJ Bergeron

回答:


3

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

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

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

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

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

あなたが見てみたいかもしれないもう一つのよりシンプルなアプリはDocker Pullerです。



これらのリンクの一部は現在壊れていますが、GitHubプロジェクトは残ります
Tony O'Hagan

0

最近の1つのdocker-image-pullerもあります

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


-1

私はこれを見つけましたが、まだ試していません。

https://medium.com/@iaincollins/docker-swarm-automated-deployment-cb477767dfcfこれは、webhookを使用してdockerハブでコンテナをデプロイする方法に関する記事です。

基本的に、Docker "マシン"でWebhookを処理するためのツール(以下のリンクを確認)を使用できることを示しています。 https://github.com/iaincollins/docker-deploy-webhook


このリンクで質問に答えることができますが、回答の重要な部分をここに含め、参照用のリンクを提供することをお勧めします。リンクされたページが変更されると、リンクのみの回答が無効になる可能性があります。
マイケルハンプトン

@MichaelHampton私の答えは参考になると思います。説明を追加しました。
emj365 2018年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.