升级前必须备份所有关键数据,包括仓库、配置文件和数据库,防止升级失败导致数据丢失。常用命令:
sudo gitlab-rake gitlab:backup:create
此命令会创建包含所有项目和配置的备份文件,默认存储在/var/opt/gitlab/backups目录。
sudo apt-get update && sudo apt-get upgrade -y;curl、openssh-server、ca-certificates、postfix),若缺失可通过sudo apt-get install <package-name>安装。适用于通过GitLab官方仓库安装的实例,步骤简单且易回滚。
sudo apt update
确保系统获取到GitLab官方仓库的最新版本信息。
sudo apt install gitlab-ce(社区版)或sudo apt install gitlab-ee(企业版);16.3.0):sudo apt policy gitlab-ce查看可用版本,再执行:sudo apt install gitlab-ce=<version>。sudo gitlab-ctl reconfigure;sudo gitlab-ctl restart(12.5及以上版本推荐)或sudo systemctl restart gitlab-runsvdir。sudo gitlab-rake gitlab:env:info;http://your-server-ip),登录后确认版本号显示正确。适用于未使用APT仓库或需要自定义安装的场景。
同步骤一,确保数据安全。
避免版本冲突,卸载现有GitLab组件:
sudo apt purge gitlab-ce gitlab-ci-multi-runner gitlab-rails gitlab-shell;
删除残留数据和配置目录:
sudo rm -rf /var/opt/gitlab /etc/gitlab。
访问GitLab官方下载页面(https://about.gitlab.com/downloads/),选择Debian对应版本(如.deb格式),使用wget下载:
wget https://packages.gitlab.com/gitlab/gitlab-ce/<version>/gitlab-ce_<version>_amd64.deb(替换<version>为目标版本号)。
.deb包:sudo dpkg -i gitlab-ce_<version>_amd64.deb;sudo apt install -f;sudo gitlab-ctl reconfigure。sudo gitlab-ctl start;适用于通过Docker容器运行的GitLab实例。
通过Docker卷或绑定挂载备份数据目录(如/srv/gitlab/data)。
docker pull gitlab/gitlab-ce:latest(社区版)或docker pull gitlab/gitlab-ee:latest(企业版)。
docker stop gitlab;docker rm gitlab;docker run --detach --name gitlab --hostname your-domain.com --publish 443:443 --publish 80:80 --publish 22:22 --volume /srv/gitlab/config:/etc/gitlab --volume /srv/gitlab/logs:/var/log/gitlab --volume /srv/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce:latest。访问Web界面确认版本信息,或进入容器查看:
docker exec -it gitlab grep "VERSION" /etc/gitlab/gitlab.rb。
单节点实例升级期间用户无法访问,建议选择低峰期并提前通知。
若使用独立Gitaly服务器,需先升级Gitaly至与GitLab应用服务器兼容的版本,再升级GitLab。
升级后检查/etc/gitlab/gitlab.rb中的配置(如external_url),确保与新版本要求一致。
sudo gitlab-rake gitlab:storage:migrate_to_hashed;