如何在不运行的情况下备份gitlab?

时间:2018-12-18 01:54:58

标签: gitlab gitlab-omnibus

我使用了gitlab omnibus安装版本,但是我的电脑坏了,所以现在无法启动我的电脑。 因此,我无法运行gitlab,而不得不从这种情况下进行备份。 在Gitlab文档中,有描述如何在gitlab运行状态下进行备份,但是没有任何描述在不运行状态下进行备份的方法。 (https://docs.gitlab.com/ee/raketasks/backup_restore.html

存储库已经备份,我真正想要备份的是有关gitlab支持功能(例如问题,合并请求等)的信息 该怎么办?

3 个答案:

答案 0 :(得分:2)

如果可能,您需要备份GitLab多功能映像所装载的数据,然后将其复制到工作的PC上,以便在那里运行GitLab。

一旦您在新工作站上运行了GitLab,就可以在那里进行备份。

答案 1 :(得分:2)

这是我的答案。

如果不运行gitlab,就无法进行备份,因为所有数据库数据都与progresql相关。

因此,我在PC上的docker中安装了另一个gitlab,并将所有内容附加到它上(配置,存储库,数据库数据)

下面是我所做的

  1. 在docker上安装gitlab(必须安装与原始版本匹配的特定版本) https://docs.gitlab.com/omnibus/docker/

  2. 修改docker run脚本以将原始数据连接到docker中的gitlab。

    例如)

    sudo docker run --detach \     --hostname gitlab.example.com \     -发布443:443-发布80:80-发布22:22 \     --name gitlab \     -总是重启     --volume [USER_DIR] / gitlab / config:/ etc / gitlab \     --volume [USER_DIR] / gitlab / logs:/ var / log / gitlab \     --volume [USER_DIR] / gitlab / data:/ var / opt / gitlab \     gitlab / gitlab-ce:latest

  3. 在docker中运行gitlab

  4. 通过omnibus软件包安装的备份方法在docker中运行备份 https://docs.gitlab.com/ee/raketasks/backup_restore.html#restore-for-omnibus-installations

    例如)

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

  5. 完成备份后,找到在

    中指定的备份文件

    例如) [USER_DIR] /etc/gitlab/gitlab.rb

答案 2 :(得分:0)

即使您认为结论可以解决,我也不同意您的所有结论。这完全取决于您的设置,如果您在同一台计算机上拥有所有数据,那么这是一个仍有改进空间的设置。

我自己的设置提供了外部PostgreSQL 9.x和Redis 5.x服务器。外部服务器和Docker的好处使仅使用外部服务器和对Docker主机上的Docker卷的根访问权限即可进行备份/还原。由于数据库是外部的,因此该解决方案涉及的步骤更少。

我已经做过很多次了,并且可以使用,但是只有在您知道自己在做什么的情况下才应使用。某些部分与您发现的部分相同,例如重新安装相同的版本等。

我只想指出这个问题存在多个解决方案。但是,更有益的一件事是,如果Gitlab团队专注于PostgreSQL 11.x兼容性而不是10.x兼容性。我已经从源代码中成功构建了11.x版本,但正在等待Gitlab团队发布。

很高兴您成功了!