温馨提示×

gitlab在linux如何升级

小樊
44
2026-09-28 15:35:08
栏目: 智能运维

在 Linux 上升级 GitLab,方式取决于你当初的安装方式(Omnibus 包、Docker、源码)。下面是最常见的几种情况。


一、Omnibus 安装(最常见,apt / yum)

1. 备份(非常重要)

sudo gitlab-rake gitlab:backup:create

以及备份配置文件:

sudo cp /etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb.bak
sudo cp -R /etc/gitlab/ssl /etc/gitlab/ssl.bak  # 如果有

2. 升级注意事项(版本跳跃)

⚠️ 不要跨大版本直接升级
例如:

  • 14.x → 15.x → 16.x → 17.x
    必须逐级升级,每个大版本都要先升级到该系列最新小版本。

官方升级路径工具:
https://docs.gitlab.com/ee/update/index.html#upgrade-paths


3. Debian / Ubuntu

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

如果是指定版本:

sudo apt install gitlab-ee=16.11.0-ee.0

4. CentOS / RHEL / Rocky

sudo yum update
sudo yum install gitlab-ee

或指定版本:

sudo yum install gitlab-ee-16.11.0-ee.0

5. 重新配置并查看状态

sudo gitlab-ctl reconfigure
sudo gitlab-ctl status

二、Docker 方式

1. 查看当前版本

docker exec -it gitlab gitlab-rake gitlab:env:info

2. 拉取新镜像(注意升级路径)

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

3. 停止并重启容器

docker stop gitlab
docker rm gitlab

docker run --detach \
  --hostname gitlab.example.com \
  --publish 443:443 --publish 80:80 --publish 22:22 \
  --name gitlab \
  --restart always \
  --volume /srv/gitlab/config:/etc/gitlab \
  --volume /srv/gitlab/logs:/var/log/gitlab \
  --volume /srv/gitlab/data:/var/opt/gitlab \
  gitlab/gitlab-ee:16.11.0-ee.0

⚠️ 数据卷必须保持不变


三、Kubernetes(Helm)

helm repo update
helm upgrade gitlab gitlab/gitlab \
  -n gitlab \
  -f values.yaml \
  --version 7.x.x

四、升级后检查

sudo gitlab-rake gitlab:check SANITIZE=true
sudo gitlab-ctl tail

五、常见问题

1. 升级卡在 migrations

  • 不要强制中断
  • 查看日志:
sudo gitlab-ctl tail

2. 版本跨度太大报错

必须按官方升级路径逐级升。

3. 磁盘空间不足

至少预留 2–3 倍当前数据大小


六、官方文档(强烈建议)

  • 升级总览
    https://docs.gitlab.com/ee/update/
  • 升级路径
    https://docs.gitlab.com/ee/update/index.html#upgrade-paths

如果你愿意,可以告诉我:

  • GitLab 版本(cat /opt/gitlab/version-manifest.txt)
  • 安装方式(Omnibus / Docker / 源码)
  • Linux 发行版

我可以给你精确的升级命令。

0 踩