可以使用持续集成工具的Docker机器吗?

我想要做的是:使用像CircleCI或GitLab这样的持续集成工具来部署到DigitalOcean液滴。 本地我可以使用Docker Machine来运行类似的东西

$ eval $(docker-machine env my-droplet)

连接到一个已经创build的液滴,然后docker run foo

是否有可能通过传统的deploy.yml文件做这样的动作? 假设我有一个digitalocean-access-token和一个已经创build的液滴。

如果我正确理解你的问题,你可以使用这个命令来实现你想要的:

docker-machine create \ --driver generic \ --generic-ip-address=<your vm IP> \ --generic-ssh-key ~/.ssh/id_rsa \ my-droplet

然后,你可以做你想做的事情:

$ eval $(docker-machine env my-droplet)

这将注册机器。 否则,你必须提供所有的证书和configuration从你的开发环境到你的CI这是不安全和build议。

DigitalOcean提出的整合更多的是Docker Cloud,这意味着您的CI应该将您的映像推送到Docker Cloud,以便DigitalOcean在Droplet中使用。

请参阅Chris Asche的 “ 使用Docker Cloud和DigitalOcean部署Horizo​​n ”

login到Docker Cloud并链接您的DigitalOcean帐户。 要做到这一点,请点击左下angular的“云端设置”。 您现在应该在页面上看到一个Cloud Providers列表。 点击DigitalOcean旁边的插头图标链接您的帐户。 请注意,在撰写本文时,与Docker Cloud链接时,您的DigitalOcean帐户中添加了20美元的信用额度。

https://raw.githubusercontent.com/pluralsight/guides/master/images/d0ffee77-f47c-41ac-942d-3d02f8b3d42f.png

一旦您的帐户链接,创build一个新的DigitalOcean节点群集。 我打算在Toronto 1地区召集我的horizon-with-docker

https://raw.githubusercontent.com/pluralsight/guides/master/images/82fcfbc6-5e4c-4038-8ce4-152c54bbf711.png

新创build的节点群集可用于运行堆栈。 堆栈是服务的集合,每个服务都是一个容器的集合。 堆栈是用stack-yaml文件创build的。

https://raw.githubusercontent.com/pluralsight/guides/master/images/9109de97-3698-4f44-9d10-15b7e5e6970d.png

一旦创build,重新访问前面创build的节点集群以获取DigitalOcean液滴的IP地址 – 我的液滴IP是159.203.61.66。 请继续访问您的新部署的Horizo​​n应用程序的IP地址。