一、升级前的准备工作
sudo gitlab-rake gitlab:backup:create
备份文件默认存储在/var/opt/gitlab/backups目录(Omnibus安装)或自定义备份路径(手动配置)。sudo gitlab-rake gitlab:env:info
或登录GitLab Web界面,点击右上角头像→Settings→General查看。policycoreutils、openssh-server、postfix;Debian需openssh-server、ca-certificates)。可通过包管理器更新依赖:# Debian/Ubuntu
sudo apt update && sudo apt upgrade -y
# CentOS/RHEL
sudo yum update -y
二、Omnibus安装(推荐方式)的升级步骤 Omnibus是GitLab官方推荐的安装方式,适用于大多数Linux发行版(Debian、Ubuntu、CentOS、RHEL等),操作简便且不易出错。
sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq
sudo gitlab-ctl stop nginx
sudo apt update
sudo apt install gitlab-ce
sudo yum update gitlab-ce
gitlab.rb):sudo gitlab-ctl reconfigure
此命令会重新生成配置文件、初始化数据库表结构(如有变更)。sudo gitlab-ctl start
sudo gitlab-ctl status # 确保所有服务均为“run”状态
sudo gitlab-rake gitlab:check
http://your-gitlab-domain,查看右下角版本号是否更新。三、Docker容器安装的升级步骤 若GitLab通过Docker运行,升级流程更简单,只需替换镜像并保留数据卷。
/var/opt/gitlab(数据)、/etc/gitlab(配置)等目录:# 示例:备份至/srv/gitlab-backup
sudo rsync -avz /var/opt/gitlab/ /srv/gitlab-backup/opt/
sudo rsync -avz /etc/gitlab/ /srv/gitlab-backup/etc/
docker stop gitlab
docker rm gitlab
docker pull gitlab/gitlab-ce:latest
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
四、升级后的注意事项
sudo gitlab-rake db:migrate:status # 查看迁移状态
sudo gitlab-rake db:migrate # 执行未完成的迁移
sudo gitlab-rake cache:clear