如何将 .gitlab-ci.yml 设置为仅在一个节点上运行任务,并且仅将存储库更新或推送到其他节点(docker-s



这是我的存储库中的.gitlab-ci.yml文件:

image: docker 
#services:
#  - docker:dind
stages:
- build
- deploy
build-prod:
stage: build
only:
- master
tags:
- docker
script:
- docker network create -d overlay reprox
environment: master

deploy-prod:
stage: deploy
only:
- master
tags:
- docker  
script:
- docker stack deploy -c ./site1/docker-compose.yml site1
- docker stack deploy -c ./site2/docker-compose.yml site2 
- docker stack deploy -c ./site3/docker-compose.yml site3
- docker stack deploy -c ./reverse-proxy/docker-compose.yml proxy  
environment: master

所以我的设置是 1 个管理器和 2 个工作器节点,我只需要在管理器节点上运行构建和部署作业,其他节点只需要有存储库,不需要在工作节点上运行 bash 命令。

我添加了一个带有"docker"标签的管理器运行器和带有"runner"标签的工作节点。

移除您的docker标签。您可以将工作人员配置为仅处理特定标签

job1:
tags:
- dockernode_1
job2:
tags:
- dockernode_2

您之前使用的docker标记可能只是一种解决方法(或来自教程(,以使运行器适用于所有作业。如果你不想让跑步者关心标记,你可以让他选择所有可用的工作。

最新更新