Linux环境下GitLab版本升级详细步骤
升级前必须备份GitLab的核心数据(仓库、数据库、配置),避免升级失败导致数据丢失。
sudo gitlab-backup create
gitlab-secrets.json(含加密密钥)和gitlab.rb(主配置文件)需单独复制到安全目录:sudo cp /etc/gitlab/gitlab-secrets.json /backup/location/
sudo cp /etc/gitlab/gitlab.rb /backup/location/
sudo gitlab-rake gitlab:env:info
sudo apt update && sudo apt upgrade(Debian/Ubuntu)或sudo yum update(CentOS/RHEL)更新系统包。ldd --version查看),避免因库不兼容导致升级失败。升级前需停止GitLab核心服务,防止文件锁定或数据损坏:
sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq
sudo gitlab-ctl stop nginx
确保系统能获取GitLab的最新包版本:
curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
根据升级路径,逐步安装中间版本(如从11.0→11.1→11.2→13.0),避免跳过版本:
# 示例:升级到指定版本(替换为升级路径中的版本号)
sudo apt-get install -y gitlab-ce=15.2.5-ce.0
rpm -Uvh gitlab-ce-<version>.rpm命令升级。gitlab.rb中的修改):sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
若通过Docker运行GitLab,步骤如下:
docker stop gitlab
docker rm gitlab
docker pull gitlab/gitlab-ce:latest # 或指定目标版本,如gitlab/gitlab-ce:15.2.5-ce.0
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-ce:latest
http://your-gitlab-url/help,顶部应显示新版本号。sudo gitlab-rake gitlab:env:info
sudo gitlab-rake gitlab:check SANITIZE=true
sudo gitlab-rake db:migrate:status # 所有迁移状态应为“已启动”
或通过Web界面检查(管理区域→监控→后台迁移),确保所有后台迁移均为“已完成”。/var/log/gitlab/下的日志文件(如gitlab-rails/production.log)定位问题。