将堆栈部署到Docker for AWS的正确方法

我正在尝试将基于docker-compose的堆栈部署到AWS的Docker(通过AWS CloudFormation创build)。

我编写的YAML文件是在私有registry(Gitlab)中的Git仓库和Docker镜像中进行pipe理的。

与Manager合作部署服务的正确方式是什么?

我尝试了(并失败了)几种方法:

  1. 通过Docker API使用本地Docker客户端是不可能的,因为Docker for AWSpipe理器节点没有打开2375端口。
  2. Rsyncing直接将YAML和环境文件组合到pipe理器节点是不可能的,因为Amazon Docker AMI上未安装rsync
  3. 从Gitlabcurl文件似乎是一个非常不方便的做法。

谢谢

find一种或多或less的方式做到这一点(根据Swarm文档中的一些评论):

创build到pipe理器的SSH隧道: $ ssh -NL localhost:2374:/var/run/docker.sock docker@<manager ip> &

使用$ docker -H localhost:2374 info在本地运行所有内容

或者定义export DOCKER_HOST=localhost:2374

并使用docker作为你,如果你正在Swarm manager $ docker info上运行

在我看来,有两个选项,你可以尝试

  1. 使用Jenkins,然后有一个名为通过SSH发布的插件。 你可以使用这个插件发送你的撰写文件,然后像“docker stack deploy”一样运行命令。 更多的描述可以在这里find
  2. 您可以使用Docker云将您的群集带到您的本地terminal,类似于您已经完成的任务。 按照这个链接

第一种方法要好得多,因为您已经实现了部署的自动化,现在您可以安排部署,点击button甚至提交来运行它。

希望能帮助到你 !!