本文下面大部分是转载自:https://zhuanlan.zhihu.com/p/56108334
docker运行gitlab就不说了
本例子的运行的镜像是中文版的:
docker pull beginor/gitlab-ce:11.3.0-ce.0
另外注意的是我的gitlab使用的镜像是没有redis和pg的版本的,其他的版本的请自行网上查阅资料
注意点,新服务器上的gitlab使用的镜像版本要保持跟老的一致,不然迁移不了
另外,由于某些原因,老的机器上没有备份文件,那么需要根据当前最新的代码新建一个备份文件,命令如下
首先进入原来的gitlab容器执行备份命令
1:docker exec -it gitlab /bin/basd
2:gitlab-rake gitlab:backup:create RAILS_ENV=production
3:把这个文件下载到需要还原的服务器的路径(路径自己定义:比如我这里就直接扔到 /opt 目录下)
并且拷贝到新的服务器的所安装的gitlab的容器里的
/var/opt/gitlab/backups/
docker cp /opt/1574065296_2019_11_18_11.3.0_gitlab_backup.tar gitlab:/var/opt/gitlab/backups/
Gitlab迁移
1> 准备好新机器、安装docker
2> 拉相应版本的gitlab-ce镜像
docker pull gitlab/gitlab-ce:11.0.1-ce.0
3> 运行全新Gitlab容器
sudo docker run --detach --hostname gitlab.xxx.com --publish 443:443 --publish 80:80 --publish 1024:1024 --name gitlab --restart always --volume /srv/gitlab/config:/etc/gitlab --volume /srv/gitlab/logs:/var/log/gitlab --volume /srv/gitlab/data:/var/opt/gitlab docker.io/gitlab/gitlab-ce:11.0.1-ce.0
4> 复制备份文件到backups目录
# 停掉gitlab容器
docker stop gitlab
# 复制备份文件
cp 1548648399_2019_01_28_11.0.1_gitlab_backup.tar /srv/gitlab/data/backups/
# 重启gitlab容器
docker start gitlab
5> 进入gitlab容器,恢复Gitlab数据
# 进入GITLAB
docker exec -it gitlab /bin/bash
# 停止数据服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
# 检查状态
gitlab-ctl status
# 数据恢复
sudo gitlab-rake gitlab:backup:restore BACKUP=1548648399_2019_01_28_11.0.1
# 重启并验证
sudo gitlab-ctl restart
sudo gitlab-rake gitlab:check SANITIZE=true