【问题标题】:How to clone docker service into a new one (docker swarm)如何克隆 docker 服务到一个新的服务(docker swarm)
【发布时间】:2018-05-19 07:16:05
【问题描述】:

我正在使用 Docker Swarm 和 Portainer。

要测试具有不同图像的服务,我需要克隆一个 docker swarm 服务,所有主机、挂载、标签、机密等也必须在新服务中。这是一件很难手动完成的事情,因为某些服务可能有很多环境变量,而 Portainer 在这方面对我帮助不大。

我需要克隆我的整个服务 website_develop 并在不同的 Traefik 主机和 docker 映像中运行它。


讲故事

我的 docker swarm 服务基于 repo 的分支。

例如:网站 repo 有以下服务:website_master、website_develop。

我必须能够克隆 website_develop 服务并使用功能/分支执行它。

开发人员 A(又名 D.A)正在开发网站项目中的功能/a。

开发人员 B(又名 D.B)正在网站项目中开发功能/b。

D.A 刚刚将他的功能合并到临时环境 (website_develop),因为它已经完成了。

D.B 想在临时环境中测试他的功能。但是他不能合并到website_develop,因为它会在没有完成的情况下合并到master并导致错误(D.B很快就会合并develop到master)。

GDSC 将使用新名称克隆服务 website_develop,该名称基于分支名称以及新的 docker 映像 URL 和新的 Traefik 主机。

D.B 将他的功能/a 发布到存储库(git flow feature publish)。

Git 存储库(gitlab、github)将通过更新触发 Jenkins。

Jenkins 将构建 Dockerfile,然后创建新服务或更新已创建的服务。

【问题讨论】:

    标签: git docker jenkins docker-swarm portainer


    【解决方案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-11-08
      • 1970-01-01
      • 2017-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-09
      相关资源
      最近更新 更多