GitLab-记docker下gitlab备份、迁移以及出现的问题

今天需要把一台服务器的gitlab迁移到另一台机器上,so在此记录一下

一、新机器安装gitlab及准备工作

我们在新机器安装gitlab的时候需要注意,新的gitlab要和旧的gitlab的版本匹配才能进行迁移
我们在gitlab的管理面板中查看一下旧的gitlab版本

也可以直接进入容器中进行查看

cat /opt/gitlab/embedded/service/gitlab-rails/VERSION

我这里旧的版本是13.12.2,所以我新机器拉取的镜像也需要时13.12.2

docker pull gitlab/gitlab-ce:13.12.2-ce.0

然后直接运行

-p 80:80 -p 9022:22 \
-v /usr/local/gitlab/etc:/etc/gitlab \
-v /usr/local/gitlab/log:/var/log/gitlab  \
-v /usr/local/gitlab/opt:/var/opt/gitlab  \
--restart always \
--privileged=true \
--name gitlab \
gitlab/gitlab-ce:13.12.2-ce.0

这里的目录映射最好和旧的目录映射是一样的,以你自己为准

二、旧gitlab备份

在旧的机器执行

docker exec -t gitlab gitlab-rake gitlab:backup:create

我这里gitlab为容器名称 ,实际操作以你的为准

可以看到这里已经生成备份文件,那么备份文件在哪里呢,在我们做的映像目录下,不知道的可以通过find找一下

这样我们就可以看到生成的备份了

三、迁移备份至新的gitlab

我们把备份文件传到新的gitlib映射的目录/usr/local/gitlab/opt/backups/下

然后开始备份还原

# 进入gitlab
docker exec -it gitlab /bin/bash
# 停止数据服务应用     
gitlab-ctl stop unicorn              
gitlab-ctl stop sidekiq
# 检查服务状态是否已经停止
gitlab-ctl status
#执行备份,我这里以我的备份文件1627020404_2021_07_23_13.12.2_gitlab_backup.tar举例,需要注意的是BACKUP后面的备份文件名称是_gitlab_backup.tar前面的名称,不要直接写文件名称                    
gitlab-rake gitlab:backup:restore BACKUP=1627020404_2021_07_23_13.12.2    
#这里一直等待就行,有yes的地方就填yes,只要不是报错退出就一直等待就行,我之前以为报错就终止退出了,最后输入两个yes后备份就好了
#重新启动服务
gitlab-ctl restart
#最后检查确认一下
gitlab-rake gitlab:check SANITIZE=true

这里红字的意思:

操作完以上的步骤后你刷新下网页就会变成有数据的啦,amazing

如果发现克隆地址发生改变则修改/etc/gitlab/gitlab.rb

新增如下即可

external_url 'http://127.0.0.1'#你的ip

gitlab_rails['time_zone'] = 'UTC'
gitlab_rails['gitlab_ssh_host'] = '127.0.0.1'#你的ip
gitlab_rails['gitlab_shell_ssh_port'] = 9022 #ssh的端口

然后重新载入配置,重启即可

gitlab-ctl reconfigure
gitlab-ctl restart
posted @ 2021-07-23 14:32  shookm  阅读(699)  评论(0编辑  收藏  举报