再次迁移Gitlab服务器

团队一直在用基于docker的gitlab。去年迁移过一次服务器,参见这篇文章

今年因为某个原因再次迁移。但按照之前的办法,却一直不成功,服务起不起来,报错信息既有跟文件权限有关的,也有跟SSL证书有关的。最后没时间折腾,就换了种方式,使用备份gitlab数据,再进行恢复的方式解决。

在确保新、旧服务器上 Gitlab 版本一致的情况下,先在旧服务器上备份数据:

sudo docker exec -it gitlab /bin/bash进入旧服务器 gitlab容器的命令行,执行如下备份命令

gitlab-rake gitlab:backup:create RAILS_ENV=production

此操作备份所有gitlab数据,在 backups文件夹下生成了1523788820_2018_04_15_10.6.3_gitlab_backup.tar文件。

然后使用SFTP或SCP,将备份数据拷贝到新服务器上同名文件夹下,然后进入 gitlab 容器的命令行执行恢复命令:

gitlab-rake gitlab:backup:restore RAILS_ENV=production BACKUP=1523788820_2018_04_15_10.6.3

此过程中,有几个要点要注意:

1,注意新旧gitlab版本要一致,对于使用docker技术来说,可以通过指定版本号来确保;

2,注意文件路径要正确;

3,注意备份文件复制到新服务器后,可能存在权限问题。因为 gitlab默认使用git用户来对文件进行读写,可以使用 sudo chown git:git 1523788820_2018_04_15_10.6.3_gitlab_backup 命令来修改文件owner