docker gitlab 迁移并解决两步验证问题笔记
本文基于 centos 7 环境 docker 镜像 twang2218/gitlab-ce-zh
老服务器 centos 7.2 新服务器 centos 7.8 gitlab 版本 11.1.4
老服务器 centos 7.2
进入docker
docker exec -it gitlab bash
备份内容
gitlab-rake gitlab:backup:create
返回宿主机
备份文件从docker拷贝出来
docker cp e7203c638d34:/var/opt/gitlab/backups/1605587269_2020_11_17_11.1.4_gitlab_backup.tar ./
这里可以看一下 tar 文件的大小,正常在用的 gitlab 备份文件不会很小,起码文件大小不会是0
新服务器 centos 7.8
这里可以用 scp 命令,服务器之间文件传输很方便
scp 源文件 目标文件
scp 命令示例
scp root@192.168.1.111:/root/1605587269_2020_11_17_11.1.4_gitlab_backup.tar ./
docker cp 1605587269_2020_11_17_11.1.4_gitlab_backup.tar a94ad3ba07cf:/var/opt/gitlab/backups/1605587269_2020_11_17_11.1.4_gitlab_backup.tar
当然,这里也可以在docker里拷贝 tar 文件。
gitlab-rake gitlab:backup:restore BACKUP=1605585997_2020_11_17_11.1.4
至此,还原成功。
坑了半天时间的两步验证问题
迁移后,gitlab两步验证失败,折腾了很久。最终解决方法:
docker 镜像内,执行
gitlab-rails runner 'User.find_each(&:disable_two_factor!)'
清空两步验证,然后重启 gitlab 和 docker,问题解决!
重启命令:
docker 内:
gitlab-ctl reconfigure
gitlab-ctl restart
宿主机:
docker restart gitlab
systemctl restart docker
注意:手机 Google 验证器需要重新注册生成 pin 码。