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 をビルドしてから、新しいサービスを作成するか、作成したサービスを更新します。