0

Docker Swarm と Portainer を使用しています。

異なるイメージでサービスをテストするには、docker swarm サービスのクローンを作成する必要があります。すべてのホスト、マウント、ラベル、シークレットなども新しいサービスに含まれている必要があります。一部のサービスには多くの環境変数が含まれる可能性があり、Portainer はこれについてあまり役に立たないため、これを手作業で行うのは難しいことです。

サービス website_develop 全体のクローンを作成し、別の Traefik ホストと Docker イメージで実行する必要があります。


についてのストーリーテリング

私の docker swarm サービスは、レポのブランチに基づいています。

例: Web サイト リポジトリには次のサービスがあります: website_master、website_develop。

website_develop サービスのクローンを作成し、feature/ ブランチで実行できる必要があります。

開発者 A (別名 DA) は、Web サイト プロジェクトの機能/a に取り組んでいます。

開発者 B (別名 DB) は、Web サイト プロジェクトの機能/b に取り組んでいます。

DA は自分の機能をスタギング環境 (website_develop) にマージしました。

DB は、スタギング環境で自分の機能をテストしたいと考えています。しかし、完了せずに master にマージされてエラーが発生するため、website_develop にマージできません (DB はすぐに master に開発をマージします)。

GDSC は、新しい docker イメージ URL と新しい Traefik ホストを使用して、ブランチの名前に基づいた新しい名前でサービス website_develop を複製します。

DB は自分の機能をリポジトリに公開します (git flow feature publish)。

Git リポジトリ (gitlab、github) は、アップデートで Jenkins をトリガーします。

Jenkins は Dockerfile をビルドしてから、新しいサービスを作成するか、作成したサービスを更新します。

4

1 に答える 1

1

GDSC (Go Docker サービス クローン)

まさにこれを行うためのプロジェクトを作成しました。

https://github.com/herlon214/gdsc

あなたは単に実行することができます:

gdsc --from original_service_name --name new_service_name --image registry.gitlab.com/my/new-image --domain mycompany.org

ここから最新のバイナリ リリースをダウンロードします: https://github.com/herlon214/gdsc/releases

于 2018-05-19T07:16:05.120 に答える