Gitlab CI:将Apache服务Docker DocumentRoot目录挂载到主要的Docker中

在每一个推动下,gitlab-ci启动我的主要docker my-deploy ,并将代码克隆到/builds directoy中。

现在我已经添加了一个服务docker my-apache到上面的那个。 my-apache docker设置为启动apache,使用/shared/httpd/localhost作为Apache的DocumentRoot。

基于项目的.gitlab-ci.yml如下所示:

 # # This starts `my-deploy` docker and links an apache service docker... # testing: stage: deploy services: - my-apache:latest script: - curl $MY_APACHE_PORT_80_TCP_ADDR 

现在我想要将我的签出代码(位于目录/builds my-deploy docker中)挂载/链接到apache docker my-apache导入到dir /shared/httpd/localhost

挂载/链接应该是:

my-deploy:/builds – > my-apache:/shared/httpd/localhost

任何想法,如果这是可能的,如何configuration呢?

我的gitlab-runner config( /etc/gitlab-runner/config.toml )将my-deploy为runner,如下所示:

 # Main Linter [[runners]] url = "https://gitlab.mydomain.com/ci" token = "XXXXXXXXXXXXXXXXXXXXXXXX" name = "MY_DEPLOY" executor = "docker" limit = 0 [runners.docker] image = "my-deploy:latest" privileged = false cache_dir = "" disable_cache = true wait_for_services_timeout = 90 

更新:

docker集成如何实现gitlab:

http://docs.gitlab.com/ce/ci/docker/using_docker_images.html#how-docker-integration-works

gitlab ci文档包含在它的[runners.docker]部分

 volumes 

指定应该挂载的其他卷(与docker run -v选项相同的语法:请参阅“ 将共享存储卷挂载为数据卷 ”)

确保定义一个通用卷,您可以在my-deploys装载/build ,而在my-apache /shared/httpd/localhost

这将允许my-deploy:/build生成的数据在my-apache:/shared/httpd/localhost可见。

这意味着:

  • 首先声明一个docker数据量(在GitLab之外),用docker volume create
  • 第二,在你的gitlab-ci.yml [runners.docker]部分中使用该卷

     volumes = ["my-named-volume:/build", "my-named-volume:/shared/httpd/localhost"]