Gitlab CI中的各个阶段之间是否有可用的容器

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中触发)需要对后端容器运

在构建阶段使用的容器是否可以在下一阶段访问?我有这样的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
中触发)需要对后端容器运行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