在 Linux 服务器上迁移 GitLab,常见有 整机迁移(推荐)、备份恢复迁移、Docker 迁移 几种方式。下面按最常用、最稳妥的「备份 + 恢复」方式说明,并补充其他方案。
适用于:
# 停止相关服务(减少数据不一致)
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
# 创建备份
gitlab-rake gitlab:backup:create
备份文件在:
/var/opt/gitlab/backups/
# 文件名类似:
1670000000_2023_12_01_gitlab_backup.tar
✅ 同时备份配置文件(非常重要):
/etc/gitlab/gitlab.rb
/etc/gitlab/gitlab-secrets.json
scp /var/opt/gitlab/backups/*.tar root@新服务器IP:/var/opt/gitlab/backups/
scp /etc/gitlab/gitlab.rb root@新服务器IP:/etc/gitlab/
scp /etc/gitlab/gitlab-secrets.json root@新服务器IP:/etc/gitlab/
⚠️ 版本必须一致
查看原版本:
cat /opt/gitlab/version-manifest.txt | head -1
新服务器安装(示例 CentOS):
yum install -y gitlab-ce-原版本
或指定版本:
apt install gitlab-ce=原版本
# 停止服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
# 恢复
gitlab-rake gitlab:backup:restore BACKUP=1670000000_2023_12_01
# 启动
gitlab-ctl reconfigure
gitlab-ctl start
如果是:
✅ 直接:
适合:
docker exec -t gitlab gitlab-backup create
/var/opt/gitlab/etc/gitlab/var/log/gitlabdocker run -d \
--name gitlab \
-v /srv/gitlab/config:/etc/gitlab \
-v /srv/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:同一版本
✅ GitLab 版本必须一致
✅ gitlab-secrets.json 不备份会导致:
✅ 大仓库恢复较慢,耐心等待
gitlab-rake gitlab:check SANITIZE=true
浏览器访问:
http://新服务器IP
如果你能告诉我:
我可以给你 更精确的迁移命令。