可以使用持续集成工具的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部署Horizon ”
login到Docker Cloud并链接您的DigitalOcean帐户。 要做到这一点,请点击左下angular的“云端设置”。 您现在应该在页面上看到一个Cloud Providers列表。 点击DigitalOcean旁边的插头图标链接您的帐户。 请注意,在撰写本文时,与Docker Cloud链接时,您的DigitalOcean帐户中添加了20美元的信用额度。
一旦您的帐户链接,创build一个新的DigitalOcean节点群集。 我打算在
Toronto 1
地区召集我的horizon-with-docker
。
新创build的节点群集可用于运行堆栈。 堆栈是服务的集合,每个服务都是一个容器的集合。 堆栈是用
stack-yaml
文件创build的。
一旦创build,重新访问前面创build的节点集群以获取DigitalOcean液滴的IP地址 – 我的液滴IP是159.203.61.66。 请继续访问您的新部署的Horizon应用程序的IP地址。