1

我正尝试使用GitLab CI跑步者通过docker-compose部署我们的4容器应用程序来设置自动化部署。我可以使用docker pull命令将容器图像拉下来,但我坚持如何连接到Google Compute Engine实例以运行完整的docker-compose脚本。如何使用Docker从GitLab CI部署到Google Container Engine实例?

通常情况下,从我的本地机器上,我运行类似:

eval $(docker-machine env <machine-instance>) 
docker-compose up -d 

但我.gitlab-ci.yml脚本没有docker-machine可用。

  1. 我必须通过script节我 .gitlab-ci.yml文件安装docker-machine
  2. 如何在不使用 的情况下每次创建一个新的实例?通常,从我的本地主机,我会 运行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

[此链接](http://totallyon.me/2016/09/22/running-gitlab-ci-runner-in-gce/)可能的帮助。 [Cloud Launcher](https://cloud.google.com/launcher/)也有一个预配置的GitLab版本。 – Carlos

回答

0

不知道你在这种情况下,需要泊坞窗机的。你可能想摆脱它。

但回到你的问题,您使用的码头工人形象不来既不泊坞窗机,也没有搬运工,撰写:

https://github.com/docker-library/docker/blob/36e2107fb879d5d5c3dbb5d8d93aeef0a2d45ac8/1.12/Dockerfile

所以,你需要创建一个新的图像(或找到一个现有的)与这两个安装。 所以在.gitlab-ci.yml,而不是image: docker:latest,这将是像image: mydocker

+0

最终,我想用'docker-machine'连接我的Google Compute Engine实例,通过命令'eval $(docker-machine env )'部署我的应用程序。 –

相关问题