GitLab 迁移到 Linux 一般是指把 GitLab 从一台服务器(或系统)迁移到另一台 Linux 服务器,或者从 非 Linux(如 Windows / Docker / 旧 Linux)迁移到新的 Linux 系统。下面我按最常见、最安全的方式给你一个完整流程。
✅ 源 GitLab 和目标 GitLab 版本必须一致
gitlab-rake gitlab:env:info
如果版本不一致:
| 场景 | 推荐方式 |
|---|---|
| 整机迁移 | ✅ 备份 + 恢复(最推荐) |
| 只迁移部分仓库 | 导出 / 导入 |
| Docker → Linux | 备份 + 恢复 |
| 跨 Linux 发行版 | 备份 + 恢复 |
sudo gitlab-rake gitlab:backup:create
备份文件位置:
/var/opt/gitlab/backups/
文件名类似:
1234567890_2026_01_21_gitlab_backup.tar
scp /var/opt/gitlab/backups/*.tar user@new_server:/var/opt/gitlab/backups/
确保权限正确:
sudo chown git.git /var/opt/gitlab/backups/*.tar
sudo apt update
sudo apt install -y curl openssh-server ca-certificates
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash
sudo EXTERNAL_URL="http://gitlab.example.com" apt install gitlab-ee
⚠️ 版本必须和旧服务器一致!
sudo gitlab-ctl reconfigure
sudo gitlab-ctl stop puma
sudo gitlab-ctl stop sidekiq
恢复:
sudo gitlab-rake gitlab:backup:restore BACKUP=1234567890_2026_01_21
恢复完成后:
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
sudo gitlab-rake gitlab:check SANITIZE=true
访问 Web 页面,确认:
备份文件 不包含 以下配置:
/etc/gitlab/gitlab.rb
/etc/gitlab/ssl/
✅ 建议一起迁移:
scp -r /etc/gitlab root@new_server:/etc/
然后在新服务器执行:
sudo gitlab-ctl reconfigure
docker exec -t gitlab gitlab-rake gitlab:backup:create
docker cp gitlab:/var/opt/gitlab/backups /tmp
按上面的 备份恢复流程 操作即可。
修改:
external_url 'http://new-domain.com'
然后:
gitlab-ctl reconfigure
/etc/gitlab-runner/config.tomlgitlab-rake gitlab:cleanup
旧服务器:
1. 备份 gitlab
2. 拷贝 backup + gitlab.rb
新 Linux:
3. 安装相同版本 GitLab
4. 恢复备份
5. 启动并验证
如果你愿意,可以告诉我:
我可以给你 一步不落 的定制迁移命令。