GitLab迁移

写该文时,已经迁移成功,中途出现的问题没有截图,就用文字描述吧。

把Docker安装部署的GitLab,迁移到另外一台机器。

第一次的做法是把数据目录打包,然后放到新机器上,运行失败。提示没有权限。

找到一个相似的问题,https://www.oschina.net/question/2607587_2274426,评论中给出的方法,运行:

docker exec -it gitlab update-permissions  
docker restart gitlab

虽然能启动成功,但是登录报错,代码503。

执行 gitlab-ctl reconfigure ,依然不能登录。

于是打算使用GitLab自带的备份恢复。

启动旧机器上GitLab,连接容器:

docker exec -it gitlab bash

执行:

gitlab-rake gitlab:backup:create

可以看到GitLab自动在数据目录生成备份文件:1562636167_2019_07_09_12.0.3_gitlab_backup.tar

把备份文件上传到新机器上GitLab数据目录,backups下,在新机器执行:

docker exec -it gitlab bash

# 停止相关数据连接服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq

# 从备份文件中恢复,注意文件名是的"_gitlab_backup.tar"不需要
gitlab-rake gitlab:backup:restore BACKUP=1562636167_2019_07_09_12.0.3

# 启动服务
gitlab-ctl start

恢复时会有两个确认对话,意思是会删除原有数据库和是否保存原来的密钥,输入”yes”覆盖,继续执行就好。

再次登录,成功!


已发布

分类

来自

标签:

评论

《 “GitLab迁移” 》 有 3 条评论

  1. 匿名

    我也是执行了gitlab update-permissions,容器就起不来了,怎么办?

    1. 匿名

      执行这句命令报这个错,好坑

      993
      + chown_if_exists -R registry:git /var/opt/gitlab/gitlab-rails/shared/registry
      + path=/var/opt/gitlab/gitlab-rails/shared/registry
      + ‘[‘ -e /var/opt/gitlab/gitlab-rails/shared/registry ‘]’
      + echo ‘skipping, path does not exist: /var/opt/gitlab/gitlab-rails/shared/registry’
      skipping, path does not exist: /var/opt/gitlab/gitlab-rails/shared/registry

    2. wangzhengzhen

      GitLab版本一样吗

回复 wangzhengzhen 取消回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注