Linux环境下GitLab更新步骤
在进行任何升级操作前,必须备份GitLab所有关键数据(包括仓库代码、CI/CD配置、数据库、用户信息等),以防止升级过程中出现数据丢失。常用备份命令为:
sudo gitlab-rake gitlab:backup:create
该命令会生成一个包含所有数据的备份文件,默认存储在/var/opt/gitlab/backups目录下。
sudo gitlab-rake gitlab:env:info为避免升级过程中服务冲突,需停止GitLab的核心服务:
sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq
sudo gitlab-ctl stop nginx
(注:部分场景下可能需要停止更多服务,具体以官方文档为准)。
根据GitLab的安装方式(Omnibus或RPM/Docker),选择对应的更新方法:
sudo apt updatesudo yum updatesudo apt upgrade gitlab-cesudo yum upgrade gitlab-cegitlab-ce-17.0.0.el7.x86_64.rpm)。sudo yum remove gitlab-ce(可选,但建议清理旧版本以避免冲突)。sudo yum install /path/to/gitlab-ce-*.rpm。docker-compose down -v(若使用docker-compose)或docker stop gitlab && docker rm gitlab。docker pull gitlab/gitlab-ce:latest(或指定具体版本标签,如gitlab/gitlab-ce:17.0.0)。docker-compose.yml)启动:docker-compose up -d(或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-ctl reconfigure,以应用配置文件的修改(如自定义路径、端口等);Docker部署无需此步骤(配置已在容器启动时加载)。sudo gitlab-ctl restart重启所有服务;Docker部署通过docker-compose restart或docker restart gitlab重启容器。sudo gitlab-rake gitlab:check(该命令还会检查系统状态是否正常)。libicu、postgresql等),或调整系统包版本。/srv/gitlab/config、/srv/gitlab/data)是否正确,避免数据丢失;若使用自定义配置(如GITLAB_OMNIBUS_CONFIG),需同步更新docker-compose.yml文件。