在 Debian 下迁移 GitLab,常见有 三种方式,按推荐程度从高到低说明。你可以根据场景选择。
适用于:
gitlab-rake gitlab:env:info
⚠️ 新服务器 GitLab 版本必须 ≥ 旧服务器版本
gitlab-rake gitlab:backup:create
备份文件位置:
/var/opt/gitlab/backups/
文件名类似:
1234567890_2026_01_21_gitlab_backup.tar
cp /etc/gitlab/gitlab.rb /root/gitlab.rb.bak
cp -r /etc/gitlab/ssl /root/ssl.bak # 如有 HTTPS
查看官方安装文档: https://about.gitlab.com/install/
示例(GitLab CE):
curl -fsSL https://packages.gitlab.com/gpg.key | gpg --dearmor > /usr/share/keyrings/gitlab.gpg
echo "deb [signed-by=/usr/share/keyrings/gitlab.gpg] https://packages.gitlab.com/gitlab/gitlab-ce/debian $(lsb_release -cs) main" \
> /etc/apt/sources.list.d/gitlab_gitlab-ce.list
apt update
apt install gitlab-ce
cp /root/gitlab.rb.bak /etc/gitlab/gitlab.rb
gitlab-ctl reconfigure
scp old-server:/var/opt/gitlab/backups/*.tar /var/opt/gitlab/backups/
chmod 600 /var/opt/gitlab/backups/*.tar
gitlab-ctl stop puma
gitlab-ctl stop sidekiq
gitlab-rake gitlab:backup:restore BACKUP=1234567890_2026_01_21
只写时间戳部分,不要
.tar
gitlab-ctl reconfigure
gitlab-ctl restart
gitlab-rake gitlab:check SANITIZE=true
浏览器访问新服务器 IP / 域名 ✅
适用于:
旧服务器:
tar -czvf gitlab-full.tar.gz /etc/gitlab /var/opt/gitlab
新服务器:
gitlab-ctl reconfiguregitlab-ctl restart⚠️ 风险较高,不推荐跨大版本
docker stop gitlab
tar -czvf gitlab-docker.tar.gz /srv/gitlab
tar -xzvf gitlab-docker.tar.gz -C /
docker run -d \
--name gitlab \
-v /srv/gitlab/config:/etc/gitlab \
-v /srv/gitlab/logs:/var/log/gitlab \
-v /srv/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:版本号
GitLab version mismatch
✅ 先在旧服务器升级 GitLab,再迁移
chown -R git:git /var/opt/gitlab/backups
| 项目 | 是否完成 |
|---|---|
| GitLab 版本一致 | ✅ |
| 备份 + 配置文件 | ✅ |
| 恢复后 reconfigure | ✅ |
| 仓库 / 用户 / CI 正常 | ✅ |
如果你愿意,可以告诉我:
我可以给你 精确命令方案 ✅