我想使用docker容器使用gitlab-ci测试我们的部署。 我正在尝试创建一个工作,该工作使用在其中安装了ansible的docker conainter并将另一个docker容器用作ansible-playbook的主机。
deploy-test:
stage: deploy-test
image: stretch-ansible-docker-container
script:
- ansible-playbook -i <use-another-docker-container> test-deploy.yaml
如何创建和定义应该用作主机的docker-container?
答案 0 :(得分:1)
有不同的方法,主要取决于您是使用docker-in-docker
来构建docker还是共享主机的/var/run/docker.sock
。如果是第二种选择,则您的步骤可能会以某种方式出现:
首先为您的可爱容器创建Dockerfile。可以将它们放在您项目的源代码中,比如说Dockerfiles\
子文件夹
然后在您的管道中添加一个阶段,例如: gitlab-ci.yml
stages:
- prepare-dockers
- test
prepare:
stage: prepare-dockers
image: docker:latest
script:
- docker build -t <use-another-docker-container> Dockerfiles
因此,您可以在下一阶段准备好容器。不要忘记,如果您使用的是Docker共享(不是纯dind
),则您已连接到主机的Docker注册表,并且所有映像都将出现在其中。
但是您也不要忘记通过编辑gitlab-config.toml
以允许docker共享(暴露/var/run/docker.sock
)来共享docker套接字。