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

How to make backup of gitlab without running?

我用过 gitlab omnibus 安装版,但我的电脑坏了,所以现在无法启动我的电脑。 所以我不能 运行 gitlab 并且必须从这种情况下进行备份。 从 Gitlab 文档中,描述了如何在 gitlab 运行ning 状态下进行备份,但没有任何描述方法可以在 not-运行ning 状态下进行备份。 (https://docs.gitlab.com/ee/raketasks/backup_restore.html)

存储库已经备份,我真正想备份的是关于gitlab支持功能(例如问题,合并请求等) 怎么会这样?

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

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

这是我自己的回答。

没有运行ning gitlab就无法备份,因为所有数据库数据都与progresql相关。

所以我在我的 PC 上的 docker 中安装了另一个 gitlab 并将所有东西附加到它上面。(配置、存储库、数据库数据)

下面是我做的

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

  2. 修改docker运行脚本将你的原始数据连接到docker.

    中的gitlab

    例)

    sudo docker 运行 --分离 \ --主机名gitlab.example.com\ --publish 443:443 --publish 80:80 --publish 22:22 \ --名称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:最新

  3. 运行 gitlab 在 docker

  4. 运行 备份在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

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

我自己的设置同时提供外部 PostgreSQL 9.x 和 Redis 5.x 服务器。外部服务器和 docker 的好处使得仅使用外部服务器和对 docker 主机上的 docker 卷的 root 访问就可以备份/恢复。由于数据库是外部的,因此该解决方案涉及的步骤较少。

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

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

很高兴你成功了!