温馨提示×

linux gitlab如何升级

小樊
45
2026-07-01 07:35:58
栏目: 智能运维

在 Linux 上升级 GitLab(Omnibus 安装方式) 是最常见场景。下面我按 最推荐、最安全 的方式一步步说明,并补充 Docker / 源码 方式。


一、确认当前 GitLab 安装方式(非常重要)

1️⃣ 查看是否是 Omnibus 安装(最常见)

sudo gitlab-rake gitlab:env:info

或:

dpkg -l | grep gitlab
# 或
rpm -qa | grep gitlab

✅ 如果你看到 gitlab-eegitlab-ce99% 是 Omnibus 安装
✅ 继续看第一部分即可


二、Omnibus GitLab 升级(推荐)

升级原则:

  • 不能跨大版本直接升
  • 必须按:
    x.0 → x+1.0 → x+2.0 …

1️⃣ 备份(强烈建议)

sudo gitlab-backup create

配置文件单独备份:

cp /etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb.bak
cp -r /etc/gitlab/ssl /etc/gitlab/ssl.bak

2️⃣ 查看当前版本

cat /opt/gitlab/version-manifest.txt

3️⃣ 升级到最新补丁版本(同一主版本)

例如当前是 16.1.x

Debian / Ubuntu

sudo apt update
sudo apt install gitlab-ee
# 或 gitlab-ce

CentOS / RHEL / Rocky / Alma

sudo yum update
sudo yum install gitlab-ee
# 或 gitlab-ce

4️⃣ 跨大版本升级(例如 15 → 16)

必须逐步升级

例如:

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

5️⃣ 升级后执行

sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart

6️⃣ 验证

sudo gitlab-rake gitlab:check

浏览器访问 GitLab 页面确认正常。


三、Docker 方式 GitLab 升级

1️⃣ 查看当前版本

docker ps
docker inspect gitlab | grep IMAGE

2️⃣ 拉取新版本

docker pull gitlab/gitlab-ee:16.3.6-ee.0

3️⃣ 停止并替换容器(保留数据卷)

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 升级会自动执行迁移


四、源码安装 GitLab(不推荐)

⚠️ 已逐步淘汰,不建议新环境使用
如果你是老系统,我可以单独给你 源码升级流程


五、常见错误 & 解决方案

❌ 直接跨版本升级失败

✅ 必须按 主版本升级路径


❌ gitlab-ctl reconfigure 失败

sudo gitlab-ctl stop
sudo gitlab-ctl reconfigure
sudo gitlab-ctl start

❌ 升级后 502

sudo gitlab-ctl status
sudo gitlab-ctl restart puma

六、升级路径推荐(2026 参考)

当前版本 建议升级目标
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 / 源码)

我可以给你 一条精确到命令的升级路线

0