在 Linux 下迁移 GitLab 通常有以下几种常见场景,下面按最常用、最稳妥的方式给你说明(以 Omnibus GitLab 为例,适用于大多数自托管情况)。
gitlab-rake gitlab:backup:create
备份文件位置:
/var/opt/gitlab/backups/
文件名类似:
1234567890_2026_01_21_gitlab_backup.tar
/etc/gitlab/gitlab.rb
/etc/gitlab/gitlab-secrets.json
scp /var/opt/gitlab/backups/*.tar root@new_server:/var/opt/gitlab/backups/
scp /etc/gitlab/gitlab.rb root@new_server:/etc/gitlab/
scp /etc/gitlab/gitlab-secrets.json root@new_server:/etc/gitlab/
apt install gitlab-ee # 或 gitlab-ce
确保版本一致:
gitlab-rake gitlab:env:info
gitlab-ctl stop puma
gitlab-ctl stop sidekiq
gitlab-rake gitlab:backup:restore BACKUP=1234567890_2026_01_21
gitlab-ctl reconfigure
gitlab-ctl restart
不能直接跨大版本恢复
14 → 15 → 16 → 17
如果是 Docker 部署:
docker exec -it gitlab gitlab-rake gitlab:backup:create
backups 目录config、data、logs 挂载目录如果只是仓库:
git clone --mirror git@old.gitlab.com:group/project.git
git push --mirror git@new.gitlab.com:group/project.git
gitlab-ctl reconfigure
gitlab-ctl restart
确保:
/etc/gitlab/gitlab-secrets.json
已正确恢复
一定会失败,必须版本一致
✅ 最稳妥方案
同版本 + 官方 backup + 配置文件一起迁
如果你能告诉我:
我可以给你精确命令。