GithubリポジトリとDockerリポジトリを作成しました。どちらも非常にうまく連携しています。Dockerfileの新しいバージョンをGithubにプッシュすると、Dockerリポジトリ内に新しいイメージが自動的に構築されます。
ここで、ベースイメージが(再)ビルドされたときに実行中のコンテナーを自動的に更新したいと思います。
Docker repos webhookを使用してそれをどのように達成できますか?
GithubリポジトリとDockerリポジトリを作成しました。どちらも非常にうまく連携しています。Dockerfileの新しいバージョンをGithubにプッシュすると、Dockerリポジトリ内に新しいイメージが自動的に構築されます。
ここで、ベースイメージが(再)ビルドされたときに実行中のコンテナーを自動的に更新したいと思います。
Docker repos webhookを使用してそれをどのように達成できますか?
回答:
Century Link Labsチームは、実行中のコンテナーを更新するためにWebフックを使用できる2つの新しいオープンソースツールを開発しました。
彼らの最初のアプリは、「プッシュ」展開モデルを使用する干支です。Docker Composeの上に構築された軽量ツールで、Docker化されたアプリケーションのデプロイメントとロールバックを容易にします。すべてのデプロイメントの履歴を維持し、以前のデプロイメントにロールバックすることもできます。
彼らの2番目のアプリWatchtowerは、「プル」展開モデルを使用しています。このモデルにより、ファイアウォールの背後にあるDockerコンテナーは、外部ポートを公開することなく、変更を検出してより安全にプルできます。
ものみの塔は、リンクされたコンテナのセットを適切に再起動する方法を知っています。リンクされたコンテナーのグループの依存関係の1つで更新が検出されると、Watchtowerはすべてのコンテナーを正しい順序で停止および開始して、アプリケーションが正常に起動するようにします。
Century Link Labsとは関係ありません。
あなたが見てみたいかもしれないもう一つのよりシンプルなアプリはDocker Pullerです。
最近の1つのdocker-image-pullerもあります
Dockerのソケットに直接接続され、Docker APIを使用して、Webhookで指定したイメージを使用する実行中のコンテナーを更新します。かなりシンプルです。将来的にはオプションを追加できるでしょう。
私はこれを見つけましたが、まだ試していません。
https://medium.com/@iaincollins/docker-swarm-automated-deployment-cb477767dfcfこれは、webhookを使用してdockerハブでコンテナをデプロイする方法に関する記事です。
基本的に、Docker "マシン"でWebhookを処理するためのツール(以下のリンクを確認)を使用できることを示しています。 https://github.com/iaincollins/docker-deploy-webhook