下面按常见场景给你一个 Linux 下 GitLab 升级与配置的标准做法(以 Omnibus GitLab(官方包) 为主,这也是最主流的方式)。
sudo gitlab-rake gitlab:env:info
# 或
cat /opt/gitlab/version-manifest.txt
sudo gitlab-rake gitlab:backup:create
备份文件默认在:
/var/opt/gitlab/backups/
同时备份配置:
sudo cp /etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb.bak
sudo cp -R /etc/gitlab/ssl /etc/gitlab/ssl.bak # 如果有
⚠️ GitLab 不能跨大版本直接升
正确路径示例:
8.x → 8.x 最新
→ 9.x 最新
→ 10.x 最新
→ 11.x 最新
→ 12.x 最新
→ 13.x 最新
→ 14.x 最新
→ 15.x 最新
→ 16.x 最新
官方升级路径工具: https://gitlab.com/gitlab-org/gitlab/-/raw/master/doc/update/versions.md
sudo yum update
sudo yum install gitlab-ee # 或 gitlab-ce
sudo apt update
sudo apt install gitlab-ee # 或 gitlab-ce
# Ubuntu
sudo apt install gitlab-ee=16.11.0-ee.0
# CentOS
sudo yum install gitlab-ee-16.11.0-ee.0
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
sudo gitlab-ctl status
编辑:
sudo vim /etc/gitlab/gitlab.rb
external_url 'https://gitlab.example.com'
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.example.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "gitlab@example.com"
gitlab_rails['smtp_password'] = "password"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['gitlab_email_from'] = "gitlab@example.com"
nginx['redirect_http_to_https'] = true
如果你是用 Docker:
docker pull gitlab/gitlab-ee:16.11.0-ee.0
docker stop gitlab
docker rm gitlab
docker run -d --name gitlab -p 443:443 -p 80:80 -v /srv/gitlab:/etc/gitlab gitlab/gitlab-ee:16.11.0-ee.0
sudo gitlab-rake db:migrate
sudo gitlab-ctl stop
sudo chown -R git:git /var/opt/gitlab
sudo gitlab-ctl start
✅ 升级前:备份 + 看升级路径
✅ 生产环境:先测试环境验证
✅ 大版本升级:逐个版本升
如果你能告诉我:
我可以直接给你精确到命令的升级方案。