升级GitLab-EE 17至CentOS7后出现多类问题求助
GitLab-EE 17 升级后 CentOS7 环境问题解决指南
问题1:GitLab Runner 无法被选用
- 确认 Runner 注册状态:执行
gitlab-runner list,查看是否已正确注册到当前 GitLab 17 实例 - 检查版本兼容性:GitLab 17 要求 Runner 版本至少为 16.0+,版本过低则执行
yum update gitlab-runner升级 - 后台激活 Runner:进入 GitLab 管理后台「CI/CD → Runners」,确保 Runner 处于激活状态,禁用状态手动开启
- 核对标签匹配:检查项目 CI 配置中的标签,是否和 Runner 配置的标签一致,标签不匹配会导致无法选用
问题2:健康检查显示 Unhealthy,存在待执行数据库迁移
- 切换到 GitLab Rails 目录:
cd /opt/gitlab/embedded/service/gitlab-rails/ - 执行官方迁移命令:
sudo gitlab-rake db:migrate RAILS_ENV=production(不要直接用bin/rails,避免环境加载异常) - 迁移完成后重启服务:
sudo gitlab-ctl restart - 刷新管理后台健康检查页面,确认迁移完成、状态恢复正常
问题3:gitlab-ctl check-config 提示配置 JSON 格式错误
- 定位错误文件:执行
gitlab-ctl check-config时会输出具体错误的配置文件路径,通常在/var/opt/gitlab目录下 - 修复格式问题:编辑对应的 JSON/YAML 文件,修正引号不闭合、逗号缺失、缩进错误等格式问题
- 验证修复结果:再次执行
gitlab-ctl check-config确认错误消失,再运行gitlab-ctl reconfigure
问题4:gitlab-ctl reconfigure 时 KAS 版本时间解析失败
该问题由 CentOS7 自带的 glibc 版本过低(2.17)导致,无法正确解析 +0000 格式的时区字符串,需转为标准 RFC3339 的 +00:00 格式:
- 临时修复:找到 KAS 版本信息文件(通常为
/opt/gitlab/embedded/bin/gitlab-kas或生成版本信息的配置文件),将时间字符串中的+0000替换为+00:00 - 永久修复:在
/etc/gitlab/gitlab.rb中添加环境变量覆盖版本信息,示例配置:
保存配置后执行gitlab_kas['env'] = {'GITLAB_KAS_VERSION_OVERRIDE' => 'v17.0.0-ee (2024-05-15T09:09:49+00:00)'}gitlab-ctl reconfigure即可生效
内容的提问来源于stack exchange,提问作者Witeman
相关产品推荐
相关产品推荐

