You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitLab CI Job卡住无匹配build-docker-image标签的活跃Runner如何解决

问题根因

build-docker-image任务持续pending是因为GitLab未调度到符合要求的Runner,结合配置判断核心问题是任务标签与现有Runner标签不匹配:
配置中可正常运行的build-app、test任务均绑定build标签,说明项目/组下当前在线的可用Runner都携带build标签,但Docker构建任务被单独配置了build-docker-image标签,无任何在线Runner匹配该标签,任务无法分配执行资源。
错误提示列出的另外两类诱因也需同步排查:

  • 无处于在线激活状态的Runner
  • 任务运行在受保护分支,但对应Runner未开启受保护分支执行权限
修复方案
  • 对齐任务标签
    无需专属Runner构建镜像的场景下,直接将build-docker-image任务的标签修改为和其他正常任务一致的build即可,配置片段参考:
    build-docker-image:
      stage: build-docker-image
      variables:
        GIT_DEPTH: 5
      image:
        name: gcr.io/kaniko-project/executor:debug
        entrypoint: [""]
      dependencies:
        - build-app
      tags:
        - build # 替换原有build-docker-image标签
      script:
        - mkdir -p /kaniko/.docker
        - echo $GCP_DOCKER | base64 -d > /kaniko/.docker/config.json
        - >-
          /kaniko/executor
          --context "${CI_PROJECT_DIR}"
          --dockerfile "${CI_PROJECT_DIR}/Dockerfile"
          --destination "us.gcr.io/mycompany-ops/${CI_PROJECT_NAME}:${CI_COMMIT_SHORT_SHA}"
          --build-arg GIT_SHA=${CI_COMMIT_SHORT_SHA}
          --build-arg GIT_TAG=${CI_COMMIT_TAG}
          --build-arg BUILT_ON="$(date)"
    
    如果需要为镜像构建分配专属Runner,进入项目「设置>CI/CD>Runners」页面,给目标Runner添加build-docker-image标签,同时确认Runner处于在线、未暂停状态。
  • 校验受保护分支权限
    若任务运行在main等受保护分支,需在Runner配置页勾选「Run on protected branches」,开放受保护分支任务执行权限。
  • 清理无效配置
    当前build-docker-image任务下when:字段为空,后续注释了原main分支触发规则,空字段虽不会直接阻断运行,但可能触发配置解析异常,直接删除空when:行和注释掉的only规则即可,默认配置下任务会在前序build-app、test阶段执行成功后自动运行。

内容的提问来源于stack exchange,提问作者Woodsman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.31 11:06:33