在giblab-ci.yaml中,在给定相同别名的情况下,作业上的“服务”是否会生成单独的实例?

时间:2019-09-23 09:09:33

标签: docker gitlab-ci gitlab-ci-runner

如果我在gitlab-ci.yaml中有两个服务具有相同的别名,GitLab是启动一个共享实例还是两个单独的实例?

front_end_tests:
  image: docker:image
  stage: test
  services:
    - name: ${BRANCH_CONTAINER_IMAGE}
      alias: local-service-a

admin_tests:
  image: docker:image
  stage: test
  services:
    - name: ${BRANCH_CONTAINER_IMAGE}
      alias: local-service-b

1 个答案:

答案 0 :(得分:0)

默认情况下,每个作业都是独立的,因此每次都会重新下载构建和服务的映像以创建新的容器。

请注意,这假设您正在Docker(dind)执行程序中使用默认Docker。 Shell或Kubernetes执行者的行为可能有所不同。

此外,Gitlab CI提供了缓存机制,例如避免多次重新下载同一图像。

检查gitlab documentation以获得更多信息。

服务别名用于从作业中的同一映像创建多个容器。它们仅限于一项工作。例如,您的应用程序使用两个具有不同数据库的mysql实例。您将需要别名以避免名称冲突,请参见documentation