在 Linux 上升级 GitLab(Omnibus 安装方式) 是最常见场景。下面我按 最推荐、最安全 的方式一步步说明,并补充 Docker / 源码 方式。
sudo gitlab-rake gitlab:env:info
或:
dpkg -l | grep gitlab
# 或
rpm -qa | grep gitlab
✅ 如果你看到 gitlab-ee 或 gitlab-ce,99% 是 Omnibus 安装
✅ 继续看第一部分即可
升级原则:
- 不能跨大版本直接升
- 必须按:
x.0 → x+1.0 → x+2.0 …
sudo gitlab-backup create
配置文件单独备份:
cp /etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb.bak
cp -r /etc/gitlab/ssl /etc/gitlab/ssl.bak
cat /opt/gitlab/version-manifest.txt
例如当前是 16.1.x:
sudo apt update
sudo apt install gitlab-ee
# 或 gitlab-ce
sudo yum update
sudo yum install gitlab-ee
# 或 gitlab-ce
✅ 必须逐步升级
例如:
15.11.13
→ 16.0.10
→ 16.1.8
→ 16.3.6
# Ubuntu
sudo apt install gitlab-ee=16.0.10-ee.0
# CentOS
sudo yum install gitlab-ee-16.0.10-ee.0.el7
查看可用版本:
apt-cache policy gitlab-ee
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
sudo gitlab-rake gitlab:check
浏览器访问 GitLab 页面确认正常。
docker ps
docker inspect gitlab | grep IMAGE
docker pull gitlab/gitlab-ee:16.3.6-ee.0
docker stop gitlab
docker rm gitlab
docker run -d \
--name gitlab \
--restart always \
-p 80:80 -p 443:443 -p 22:22 \
-v gitlab-config:/etc/gitlab \
-v gitlab-logs:/var/log/gitlab \
-v gitlab-data:/var/opt/gitlab \
gitlab/gitlab-ee:16.3.6-ee.0
✅ Docker 升级会自动执行迁移
⚠️ 已逐步淘汰,不建议新环境使用
如果你是老系统,我可以单独给你 源码升级流程
✅ 必须按 主版本升级路径
sudo gitlab-ctl stop
sudo gitlab-ctl reconfigure
sudo gitlab-ctl start
sudo gitlab-ctl status
sudo gitlab-ctl restart puma
| 当前版本 | 建议升级目标 |
|---|---|
| 14.x | 14.10 → 15.0 → 15.11 → 16.0 |
| 15.x | 15.11 → 16.0 → 16.x |
| 16.x | 当前 16.x 最新 |
你可以直接告诉我:
1️⃣ GitLab 版本
2️⃣ 系统版本(Ubuntu / CentOS / Rocky)
3️⃣ 安装方式(Omnibus / Docker / 源码)
我可以给你 一条精确到命令的升级路线 ✅