我正在尝试使用GitLab CI运行器设置自动部署,以通过docker-compose
部署我们的4容器应用。我可以使用docker pull
命令将容器图像拉下来,但我仍然坚持如何连接到Google Compute Engine实例以运行完整的docker-compose
脚本。
通常,从我的本地计算机上运行类似:
eval $(docker-machine env <machine-instance>)
docker-compose up -d
但我的.gitlab-ci.yml
脚本没有docker-machine
可用。
docker-machine
部分安装script
.gitlab-ci.yml
档案? docker-machine create ...
一次,然后使用eval
上面的命令重新连接到实例。但是这将如何运作呢
与CI?以下是我的.gitlab-ci.yml
:
deploy staging:
image: docker:latest
services:
- docker:dind
environment: staging
stage: deploy
before_script:
- docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN my-registry.githost.io
script:
- docker pull my-registry.githost.io/group/project1:develop
- docker pull my-registry.githost.io/group/project2:develop
- docker pull my-registry.githost.io/group/project3:develop
- docker pull my-registry.githost.io/group/project4:develop
- docker-machine ls
答案 0 :(得分:0)
在这种情况下,不确定你需要什么样的docker-machine。你可能想要摆脱它。
但是回到你的问题,你正在使用的码头图像并不带有docker-machine,也没有docker-compose:
因此,您需要创建一个安装了这两个图像的新图像(或查找现有图像)。
所以在.gitlab-ci.yml中,而不是image: docker:latest
,它将类似于image: mydocker
答案 1 :(得分:0)
您可能必须在GitLab CI Runner中安装docker-machine才能将其与GCE一起使用