这篇教程教你如何把 GitLab 从旧服务器迁移到新服务器,确保服务正常运行、数据完整,并解决常见权限问题。
🧰 一、迁移前准备
1. 停止旧服务器上的 GitLab 容器
bash
docker-compose down
2. 打包 GitLab 数据目录
假设你的 GitLab 数据目录是 /data/gitlab
:
bash
cd /data
tar -czf gitlab-backup.tar.gz gitlab/
3. 把备份文件传到新服务器
在旧服务器执行:
bash
scp gitlab-backup.tar.gz root@新服务器IP:/tmp/
🖥️ 二、新服务器操作
1. 要求已经安装 Docker 和 Docker Compose
从零开始部署 GitLab CE 18.4.2:Docker Compose 新手教程
2. 解压数据到目标目录
bash
cd /data
tar -xzf /tmp/gitlab-backup.tar.gz
🚀 三、启动 GitLab
你可以直接使用原来的 docker-compose.yml
和 .env
文件,无需重新创建。
启动容器:
bash
docker-compose up -d
查看日志:
bash
docker-compose logs -f
🧯 四、解决权限问题(如果遇到)
如果容器日志中出现权限错误,比如:
Permission denied
可以使用 GitLab 内置命令修复权限:
bash
docker exec -it gitlab-server update-permissions
这个命令会自动修复配置、日志、数据目录的权限问题,适合新手使用。gitlab-server
为docker-compose.yml中的container_name: ${CONTAINER_NAME}
✅ 五、验证是否成功
- 等待几分钟,GitLab 启动完成;
- 浏览器访问:http://新服务器IP;
- 如果需要初始密码:
bash
docker exec -it gitlab-server cat /etc/gitlab/initial_root_password
📌 总结
步骤 | 说明 |
---|---|
停止旧容器 | 保证数据一致性 |
打包数据 | 使用 tar 命令 |
传输备份 | 用 scp 或 rsync |
解压数据 | 放到新服务器的 /data 目录 |
启动容器 | 使用原来的配置文件 |
修复权限 | 用 update-permissions 命令 |
验证访问 | 浏览器打开 GitLab 页面 |