gitlab-runner:管道无限等待

Posted

技术标签:

【中文标题】gitlab-runner:管道无限等待【英文标题】:gitlab-runner:Pipeling is pending infinitely 【发布时间】:2019-11-21 23:08:59 【问题描述】:

我安装了一个Specific Runners,状态是actived。

我的 .gitlab-ci.ymi 文件代码:

stages:
  - build

build_maven:
  stage: build
  only:
    - master
  script:
    - echo "hello CI/CD"
  tags: 
    - vue-dev-pub

当我推送主分支时,gitlab-runner 正在运行,但它无限等待。

工作页面显示:

此作业尚未开始

此作业处于待处理状态,等待运行者选择

如果我手动执行运行器,工作可以通过。

gitlab-runner verify 命令显示:

Runtime platform                                    arch=amd64 os=linux pid=24616 revision=d0b76032 version=12.0.2
WARNING: Running in user-mode.                     
WARNING: The user-mode requires you to manually start builds processing: 
WARNING: $ gitlab-runner run                       
WARNING: Use sudo for system-mode:                 
WARNING: $ sudo gitlab-runner...                   
                                                   
Verifying runner... is alive                        runner=T4iKvsT3

等你回复,谢谢!

【问题讨论】:

【参考方案1】:

如果您在调试模式gitlab-runner --debug run 下手动运行运行器,您可能会看到实际的错误消息,在我的例子中是:

WARNING: Failed to process runner builds=0 error=failed to update executor: missing Machine options executor=docker+machine runner=pSUsX4yR

那是因为在创建跑步者时,我选择了选项docker+machine 而不是docker

/etc/gitlab-runner/config.toml 修改为docker 并运行gitlab-runner restart 后跟gitlab-runner verify,管道再次开始运行。

【讨论】:

【参考方案2】:

我在 linux 上的 (shell) 跑步者遇到了类似的问题。它可以在我的一台计算机上安装和注册的跑步者上正常工作,但在另一台电脑上则不行。 (即使标签在跑步者和工作中正确匹配)

之后 gitlab-runner register我会得到:

新跑步者。尚未连接

之后 gitlab-runner verify 那个错误会消失。但我会得到 ​​p>

此作业处于挂起状态,等待运行者选择

之后 gitlab-runner restart

一切都会好起来的。

gitlab-runner status

gitlab-runner:服务正在运行!

【讨论】:

【参考方案3】:

.gitlab-ci.yml 文件中的标签部分指定该作业必须由具有相同标签 (reference) 的跑步者选择。

tags: 
    - vue-dev-pub

因此,除非您的项目实际上有一个具有vue-dev-pub 标签的运行器可用,否则它将一直等待一个可用的运行器。

【讨论】:

我的runner注册了一个标签'vue-dev-pub',感觉gitlab-runner不太友好 如果你能分享你的跑步者配置文件会有所帮助

以上是关于gitlab-runner:管道无限等待的主要内容,如果未能解决你的问题,请参考以下文章

在本地运行 GitLab 和 GitLab-Runner docker 实例时,管道中的构建步骤因连接被拒绝错误而失败

Gitlab-runner 未能删除权限被拒绝

如何从gitlab-runner执行滚动更新

Gitlab-runner 交互式 Web 终端未连接

Gitlab-Runner:从主服务器克隆的权限被拒绝

命名管道不会等到在 bash 中完成