ドッカーのworlflowにはかなり新しく、ドッカーのCD/CIワークフローのためのベストプラクティスは何か疑問に思っています...現在の記事のほとんどは、ドッカーの "展開" 、登録のみ。私が何をしたいかDocker CD/CIワークフローのベストプラクティスは何ですか?
:
- いくつかのコードは、Gitの から
- プッシュ
- ジェンキンスユニットテスト/ EEテスト
- ジェンキンスは、レジストリにドッキングウィンドウの画像
- ストアドッキングウィンドウのイメージを構築するに変更してください
- サーバー上でドッキング・イメージを実行します。
手順1〜5を達成するために、以下のスタックがあります。
ユーザーがgitlabをプッシュ - > Gitlab webhookがjenkinsに通知 - > jenkinsがプロジェクトをビルド - > gitlabドッカーレジストリにイメージを格納します。
私はドッカーイメージの展開にRancherを使用しています...私はRancherの分散が本当に好きです。つまり、実行するドッカーイメージを指定することができます。ランチャーは、コンテナを展開するサーバーを管理します。
理想的には、私は「分散」させるステップ#6が好き(つまり私は、サーバーにsshとdocker run {imagename}
を実行したいいけない)と、いくつかのサービスが展開
ための権限も持っているだろうが、現在そのようなものがあります私はこれを達成することができますか?
kubernetesを使用している場合はどうなりますか? 画像を自動展開するような「呼び出し」はありますか? – nate
私は答えを提供するのに十分なくらいのkubernetesを知っていませんが、ドッカーでは組み込みの[scheduler](https://docs.docker.com/engine/swarm/swarm-tutorial/rolling-update/)を使うことができます。 )と 'docker service update'を定期的に呼び出すcronジョブがあります。また、CIサーバーから[RESTエンドポイント](https://docs.docker.com/engine/reference/api/docker_remote_api_v1.24/)service/name/updateを呼び出すこともできます。 –