在 CentOS 上升级 GitLab 通常有两种常见场景:Omnibus 安装方式(官方推荐) 和 Docker 安装方式。下面以 最常见、最稳妥的 Omnibus 方式 为主进行说明,并补充 Docker 场景。
gitlab-rake gitlab:env:info
# 或
cat /opt/gitlab/version-manifest.txt
gitlab-backup create
备份文件默认在:
/var/opt/gitlab/backups/
⚠️ 如果是生产环境,一定要先快照或整机备份
GitLab 不支持跨多个大版本直接升级,例如:
12.x → 16.x ❌
12.x → 13.x → 14.x → 15.x → 16.x ✅
vi /etc/yum.repos.d/gitlab_gitlab-ee.repo
或重新安装仓库(推荐):
curl -fsSL https://packages.gitlab.com/gpg.key | gpg --dearmor > /etc/pki/rpm-gpg/RPM-GPG-KEY-gitlab
重新安装仓库(以 GitLab CE 为例):
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | bash
yum --showduplicates list gitlab-ce
yum install gitlab-ce-14.10.5-ce.0.el7
yum update gitlab-ce
⚠️ 大版本升级建议 一个版本一个版本升
gitlab-ctl reconfigure
gitlab-ctl restart
gitlab-rake gitlab:check
docker stop gitlab
docker rm gitlab
docker pull gitlab/gitlab-ce:latest
docker run -d \
--name gitlab \
-p 443:443 -p 80:80 -p 22:22 \
-v gitlab-config:/etc/gitlab \
-v gitlab-logs:/var/log/gitlab \
-v gitlab-data:/var/opt/gitlab \
gitlab/gitlab-ce:latest
✅ 数据不会丢失(只要 volume 不变)
gitlab-ctl status
gitlab-ctl tail
常见原因:
gitlab-ctl reconfigure 未执行yum downgrade gitlab-ce-旧版本
✅ 生产环境推荐流程:
备份 → 查版本 → 按大版本逐步升级 → reconfigure → 验证
✅ 推荐升级顺序示例:
13.12 → 14.0 → 14.10 → 15.0 → 15.11 → 16.x
如果你愿意,可以告诉我:
我可以给你 精确的升级命令和版本路径 ✅