Gitlab CI中的各个阶段之间是否有可用的容器
在构建阶段使用的容器是否可以在下一阶段访问?我有这样的yaml:Gitlab CI中的各个阶段之间是否有可用的容器,gitlab,gitlab-ci,Gitlab,Gitlab Ci,在构建阶段使用的容器是否可以在下一阶段访问?我有这样的yaml: build_backend: image: web-app services: - mysql:5.7 stage: build script: - make build test_frontend: image: node:8 stage: test script: - make run-tests 如果可能,我的测试(在make run tests中触发)需要对后端容器运
build_backend:
image: web-app
services:
- mysql:5.7
stage: build
script:
- make build
test_frontend:
image: node:8
stage: test
script:
- make run-tests
如果可能,我的测试(在make run tests
中触发)需要对后端容器运行HTTP请求吗
我试图避免构建一个新的容器,然后推到一个注册表,结果又把它拉下来,但也许没有其他办法?如果我这样做了,如果我将mysql容器作为服务添加到test_前端作业中,我的web app容器是否仍然可以访问它。否,容器在两个阶段之间不可用。默认情况下,作业工件(即文件)将在阶段和阶段之间传递 如果您需要对容器运行测试,您确实应该再次从注册表中将其下拉。然后,您可以使用docker in docker(
dind
)服务运行测试
我认为这很好地解释了一个类似的用例。此处描述的测试工作如下:
test:
stage: test
script:
- docker run -d --env-file=.postgres-env postgres:9.5
- docker run --env-file=.environment --link=postgres:db $CONTAINER_TEST_IMAGE nosetests --with-coverage --cover-erase --cover-package=${CI_PROJECT_NAME} --cover-html