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

如何在不运行的情况下备份gitlab?,gitlab,gitlab-omnibus,Gitlab,Gitlab Omnibus,我使用了gitlab omnibus安装版本,但我的电脑坏了,所以现在无法启动电脑。 因此,我无法运行gitlab,必须在这种情况下进行备份。 在Gitlab文档中,有一个关于如何在Gitlab运行状态下进行备份的描述,但没有任何描述方法可以在非运行状态下进行备份。 () 存储库已经备份,我真正想备份的是gitlab支持功能(例如,问题、合并请求等) 如何做到这一点?如果可能,您需要备份GitLab omnibus映像装载的数据,并将该数据复制到一台工作的PC上,以便在那里运行GitLab 在新

我使用了gitlab omnibus安装版本,但我的电脑坏了,所以现在无法启动电脑。 因此,我无法运行gitlab,必须在这种情况下进行备份。 在Gitlab文档中,有一个关于如何在Gitlab运行状态下进行备份的描述,但没有任何描述方法可以在非运行状态下进行备份。 ()

存储库已经备份,我真正想备份的是gitlab支持功能(例如,问题、合并请求等)
如何做到这一点?

如果可能,您需要备份GitLab omnibus映像装载的数据,并将该数据复制到一台工作的PC上,以便在那里运行GitLab


在新工作站上运行GitLab后,可以在那里进行备份。

这是我的自我回答

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

因此,我在我的PC上安装了另一个docker中的gitlab,并将所有东西都连接到它上。(配置、存储库、数据库数据)

下面是我所做的

  • 在docker上安装gitlab(必须安装与原始版本匹配的特定版本)

  • 修改docker运行脚本以将原始数据连接到docker中的gitlab

    e、 g.)

    sudo docker run--分离\ --主机名gitlab.example.com\ --发布443:443--发布80:80--发布22:22\ --名称gitlab\ --始终重新启动\ --卷[USER\u DIR]/gitlab/config:/etc/gitlab\ --卷[USER\u DIR]/gitlab/logs:/var/log/gitlab\ --卷[USER\u DIR]/gitlab/data:/var/opt/gitlab\ gitlab/gitlab-ce:最新版本

  • 在docker中运行gitlab

  • 通过omnibus软件包安装的备份方法在docker中运行备份

    e、 g.)

    docker exec-t gitlab rake gitlab:backup:create

  • 完成备份后,查找在中指定的备份文件

    e、 g.) [USER\u DIR]/etc/gitlab/gitlab.rb


  • 我不同意你所有的结论,即使它是一个解决方案。这完全取决于您的设置,如果您在同一台机器上拥有所有数据,那么这是一个有改进余地的设置

    我自己的设置同时提供外部PostgreSQL 9.x和Redis 5.x服务器。外部服务器和docker的好处是,可以仅使用外部服务器和docker主机上docker卷的根访问权限进行备份/恢复。此解决方案涉及的步骤较少,因为DBs是外部的

    我已经这样做了很多次,它是有效的,但是只有当你知道你在做什么的时候才应该使用它。有些部件与您发现的相同,如重新安装相同版本等

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


    我很高兴你成功了

    谢谢你,沃克。我已经在另一台电脑上通过docker的gitlab进行了备份。反馈很好+1.