gitlab数据迁移的时候新服务器的gitlab版本必须与旧服务器gitlab的版本相同。
1. 新服务器安装gitlab
我们是直接使用docker镜像来安装gitlab服务的。
在就服务器中查看原始的gitlab的版本
## 进入docker容器
docker exec -it gitlab /bin/bash
## 查看gitlab版本
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
13.8.3
## 新服务器中下载docker gitlab 镜像
docker pull gitlab/gitlab-ce:13.8.3-ce.0
## 新服务器中创建docker挂载文件夹
mkdir -p ~/docker/gitlab/config ~/docker/gitlab/logs ~/docker/gitlab/data
## 创建容器
docker run -id -p 8929:8929 -p 2289:22 -v ~/docker/gitlab/config:/etc/gitlab -v ~/docker/gitlab/logs:/var/log/gitlab -v ~/docker/gitlab/data:/var/opt/gitlab --restart always --privileged=true --name gitlab gitlab/gitlab-ce:13.8.3-ce.0
## --privileged=true 容器拥有宿主机的权限
2. 备份与数据迁移
## 1. 生成gitlab 备份文件
gitlab-rake gitlab:backup:create
# 默认会在 /var/opt/gitlab/backups 中生成备份文件, 实际是在宿主机中的 ~/docker/gitlab/data/backups
## 将生成的备份文件拷贝到新服务器的 backups目录中
chmod 777 1660201142_2022_08_11_13.8.3_gitlab_backup.tar ## 防止权限问题
ll -h ## 查看文件大小
## 停止新服务器上gitlab数据连接服务
gitlab-ctl stop unicon
gitlab-ctl stop sidekiq
## 恢复备份文件
## gitlab-rake gitlab:backup:restore BACKUP=备份文件编号
git-rake gitlab:backup:restore BACKUP=1660201142_2022_08_11_13.8.3
最后等待备份文件恢复完成即可。
最后重启gitlab
## 重启gitlab服务
gitlab-ctl restart
## 退出容器
exit
## 重启容器
docker restart gitlab
评论区