docker跑gitlab,从A服务器-迁移到B服务器,包括仓库代码和用户所有信息

本文下面大部分是转载自: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

 

 

你可能感兴趣的:(版本控制)