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文件。