如何在 Gitlab 中备份包注册表

Posted

技术标签:

【中文标题】如何在 Gitlab 中备份包注册表【英文标题】:How to backup package registry in Gitlab 【发布时间】:2021-08-02 15:49:20 【问题描述】:

我使用自我管理的 GitLab 来管理许多 java 应用程序。我还使用 gitlab 包注册表来存储工件(jar 文件)并使用 AWS S3 作为存储路径。我的公司想为 gitlab 备份制定一个计划。我查看了 gitlab 文档:https://docs.gitlab.com/ee/raketasks/backup_restore.html。我没有看到任何关于我们如何在包注册表中备份包的提及

我不知道当我用新实例恢复 gitlab 时,新的包注册表会识别我在 S3 中的包?

谁有这方面的经验,请告诉我。非常感谢!!!

【问题讨论】:

【参考方案1】:

由于您将工件存储在 S3 上,我相信它们应该只在您从备份恢复时可用。新实例仍将指向同一个 S3 存储桶。您应该确保 S3 保留策略适合您的备份需求。

如果您将包存储在本地文件系统上,Gitlab 备份过程当前不包含这些文件,尽管它包含包元数据。在这种情况下,您需要在使用正常备份/恢复过程恢复元数据后,手动将位于 /var/opt/gitlab/gitlab-rails/shared/packages/ 的包目录复制到新服务器。

在 Gitlab 问题跟踪器中有一个open ticket,我在其中找到了上述解决方法。

【讨论】:

以上是关于如何在 Gitlab 中备份包注册表的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 curl 或 wget 从 GitLab 下载 maven 包?

从gitlab备份包恢复某个仓库

如何备份和恢复 gitlab runner?

如何在gitlab.com中获得docker注册表用户名和密码?

GitLab 包注册表 Nuget 包每组

`pipenv install` 从 GitLab 项目的 PyPI 注册表中成功安装了一个包,但随后在锁定步骤中失败