温馨提示×

怎样迁移到debian gitlab

小樊
37
2026-10-02 13:12:58
栏目: 智能运维

下面按常见场景给你一个“迁移到 Debian 上的 GitLab”的实用指南。先明确你要的是哪一种迁移:


一、场景确认

你现在的 GitLab 可能是:

  1. GitLab.com(云端) → 自建 Debian GitLab
  2. 其他 Linux(CentOS / Ubuntu)上的 GitLab → Debian GitLab
  3. Docker GitLab → Debian 原生 GitLab
  4. 只是把代码仓库迁到 Debian GitLab(不含用户/issue)

下面以 最常见:从旧 GitLab 迁移到 Debian 自建 GitLab 为例。


二、在 Debian 上安装 GitLab

1. 系统要求

  • Debian 11 / 12(推荐 12)
  • 至少 4GB RAM(2GB 能跑但容易 OOM)
  • 域名(可选但建议)

2. 安装 GitLab CE(社区版)

sudo apt update
sudo apt install -y curl openssh-server ca-certificates tzdata perl

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash

sudo EXTERNAL_URL="https://gitlab.example.com" apt install gitlab-ce

安装完成后:

sudo gitlab-ctl reconfigure

访问:

http://服务器IP

首次登录用 root,密码在:

cat /etc/gitlab/initial_root_password

三、数据迁移方式(推荐顺序)

✅ 方式一:GitLab 官方备份迁移(最完整)

适用于:同版本或大版本升级迁移

在旧服务器上

sudo gitlab-rake gitlab:backup:create

生成文件:

/var/opt/gitlab/backups/xxxxx_gitlab_backup.tar

拷贝到 Debian 新服务器

scp old_server:/var/opt/gitlab/backups/*.tar \
    /var/opt/gitlab/backups/

恢复

sudo gitlab-ctl stop puma
sudo gitlab-ctl stop sidekiq

sudo gitlab-rake gitlab:backup:restore BACKUP=时间戳

sudo gitlab-ctl restart

⚠️ 注意:

  • GitLab 版本尽量一致
  • 配置文件 /etc/gitlab/gitlab.rb 需手动迁移

✅ 方式二:项目级导出 / 导入(轻量)

适合只迁代码 + issue:

旧 GitLab:

项目 → Settings → General → Export project

新 Debian GitLab:

New project → Import project → GitLab export

✅ 方式三:纯 Git 仓库迁移

只迁代码:

git clone --mirror git@old.gitlab.com:group/project.git
cd project.git
git push --mirror git@new.gitlab.com:group/project.git

四、配置文件迁移(很重要)

从旧服务器复制:

/etc/gitlab/gitlab.rb

到新 Debian 服务器,然后:

sudo gitlab-ctl reconfigure

五、常见问题

1. 502 错误

sudo gitlab-ctl restart
free -h   # 看内存

2. 邮件发不出去

在 gitlab.rb:

gitlab_rails['smtp_enable'] = true

3. 升级 GitLab

apt update
apt install gitlab-ce

六、如果你愿意,我可以更精准帮你

你可以告诉我:

  • 当前 GitLab 版本
  • 是否在 Docker
  • 是否要保留用户 / CI / Issue
  • Debian 版本

我可以直接给你一步步命令版方案。

0 踩