gitlab-runner list gitlab-runner verify # job 里显式声明标签 tags: [docker, build]
流水线一直停在 pending,job 页上写着 This job is stuck because no runners online or no matching tags,runner 进程其实在线,项目里也没动过配置,重启 runner 无效,日志里只有这一句线索。先别急着动参数,把报错原文和时间点记下来,顺序反了容易白折腾。
原因不复杂,job 的 tags 和 runner 注册时带的标签不是同一组,或者 runner 的 run_untagged 设成 false,标签对不上就没人接这个单子,流水线只能一直挂起,跑一次 debug 就能看清,改完不用重提代码。
这次卡住的地方就在「GitLab Runner 标签」这一环,单独把它拎出来验证,别和其他改动混在同一次发布里。备份不是备了就行,恢复一次才算数,很多备份文件打开才发现是空的。
接口问题先分清是没发出去、发出去了没收到,还是收到了处理失败。
处理上按这个顺序:在 runner 的配置里核对 tags 和 job 里写的是否一致 大小写也算;确认这个 runner 是否允许接没有标签的 job 默认常常是关的;查这个 runner 是不是被限制 只对某些项目开放 别的项目接不了。
改完只确认一件事:同一分支重新提交后 job 几十秒内被接走,流水线不再挂起,队列里没有堆积任务。
