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"]