Docker 在giblab-ci.yaml中,作业上的'service'是否会在给定相同'alias'的情况下生成单独的实例?
如果我在gitlab-ci.yaml中有两个作业具有相同的服务别名,那么gitlab是启动单个共享实例还是启动两个单独的实例Docker 在giblab-ci.yaml中,作业上的'service'是否会在给定相同'alias'的情况下生成单独的实例?,docker,gitlab-ci,gitlab-ci-runner,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 ser
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
默认情况下,每个作业都是独立的,因此每次都会重新下载构建和服务的映像以创建新容器 注意,这假设您正在Docker dind executor中使用默认Docker。Shell或Kubernetes执行者的行为可能不同 此外,Gitlab CI还提供了缓存机制,例如避免多次重新下载同一映像 有关更多信息,请查看
服务别名用于从作业内的同一映像创建多个容器。它们仅限于一项工作的范围。例如,您的应用程序使用两个数据库不同的mysql实例。您需要别名以避免名称冲突,请参阅。示例中的作业处于同一阶段,因此它们是否共享服务实例?好的,我犯了一个错误,编写了阶段而不是作业。工作是独立的,服务仅限于一项工作的范围。如果不是这样的话,就业就无法与之平行。所以他们不会共享服务实例。