使用 GitLab CI 进行持续集成的一些踩坑

本文介绍了GitLab CI的基础知识,包括如何注册和管理runner。遇到的问题如runner灰色感叹号、删除runner失败、runner列表显示、权限错误、环境变量设置、构建阶段文件共享、配置文件写入错误及Git版本过低等,提供了相应的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

GitLab CI

关于 gitlib ci 的介绍和基础知识 参考 用 GitLab CI 进行持续集成

注册 runner 后,gitlab runner 出现灰色感叹号

在服务器注册完 runner 后,在 gitlab 的 runner 处出现灰色感叹号,并提示 new runner has not connected yet。这个问题一般都是权限问题造成的,加 sudo 和不加 sudo 所创建的配置文件不同。在使用 gitlab-runner register 注册的时候,加上 sudo,在启动 runner 时也要加上 sudo , sudo gitlab-runner restartsudo gitlab-runner start

无法删除 runner

在使用 gitlab-runner unregister 删除 runner 时,提示 Error: unregistering runner from gitlab forbidden。使用 gitlab-runner verify 检测 runner 是否已连接至 gitlab ,然后gitlab-runner verify --delete在注册列表中删除它们。

gitlab-runner list 不显示注册的 runner

使用 sudo 权限注册的 runner 要使用sudo gitlab-runner list查看。

构建时提示 mkdir: cannot create directop ‘/home/gitlab-runner/builds/xxxxx’: Permission denied

用户 gitlab-runner 没有构建目录的权限,加上权限即可,或切换至 root 用户,给该文件夹上权限。

构建时的环境变量问题

如在构建的时候,提示bash: npm: command not found,此时可以去服务器上给bash加上环境变量,或者在before_script阶段加上环境变量,例如:

before_script:
  - export PATH=/home/souche/n/bin:$PATH

下一个 Stages 无法使用上一个 Stages 生成的文件

这是因为在进行一个新的 Stages 时,会把上一个 Stages 所产生的文件删除掉,解决方案就是使用缓存 cache,如:

cache:
  key: '$CI_COMMIT_REF_NAME'
  paths:
    - .nuxt

构建时在 Getting source from Git repository 阶段出现错误提示 error: failed to write new configuration file /home/gitlab-runner/builds/xxxx/0/xxxx/xxxx.tmp/git-template/config.lock

出现这个提示,请检查服务器磁盘是不是已经满了,请释放些磁盘空间
在这里插入图片描述

构建过程出现 fatal: git fetch-pack: expected shallow list fatal: The remote end hung up unexpectedly

在这里插入图片描述
这是因为服务器 git 版本太低,不支持新的 api,去服务器升级一下 git 版本

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值