将堆栈部署到Docker for AWS的正确方法
我正在尝试将基于docker-compose的堆栈部署到AWS的Docker(通过AWS CloudFormation创build)。
我编写的YAML文件是在私有registry(Gitlab)中的Git仓库和Docker镜像中进行pipe理的。
与Manager合作部署服务的正确方式是什么?
我尝试了(并失败了)几种方法:
- 通过Docker API使用本地Docker客户端是不可能的,因为Docker for AWSpipe理器节点没有打开2375端口。
- Rsyncing直接将YAML和环境文件组合到pipe理器节点是不可能的,因为Amazon Docker AMI上未安装
rsync
。 - 从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
上运行
在我看来,有两个选项,你可以尝试
- 使用Jenkins,然后有一个名为通过SSH发布的插件。 你可以使用这个插件发送你的撰写文件,然后像“docker stack deploy”一样运行命令。 更多的描述可以在这里find
- 您可以使用Docker云将您的群集带到您的本地terminal,类似于您已经完成的任务。 按照这个链接
第一种方法要好得多,因为您已经实现了部署的自动化,现在您可以安排部署,点击button甚至提交来运行它。
希望能帮助到你 !!