Help us learn about your current experience with the documentation. Take the survey.

减少包注册表存储

  • Tier: Free, Premium, Ultimate
  • Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated

包注册表会随时间积累包及其资源。如果不定期清理:

  • 包列表获取时间变长,影响 CI/CD 管道性能
  • 服务器会为未使用或过期的包分配更多存储空间
  • 用户可能在众多过时的包版本中难以找到相关包

你应该实施定期清理策略来减少包注册表的臃肿并释放存储空间。

查看包注册表存储使用情况

要查看存储的使用情况分析

  1. 在左侧边栏,选择搜索或跳转至并找到你的项目。
  2. 选择设置 > 使用配额
  3. 使用配额页面,查看包的使用情况分析

删除包

在包注册表中发布包后,你无法编辑该包。相反,你必须删除并重新发布该包。

先决条件:

  • 你必须至少拥有 Maintainer 角色。

要删除包:

  1. 在左侧边栏,选择搜索或跳转至并找到你的项目或群组。
  2. 选择部署 > 包注册表
  3. 包注册表页面,选择要删除的包。
    • 或者,在包注册表页面, 选择垂直省略号( ellipsis_v ) 并选择删除包
  4. 选择删除

该包将被永久删除。

你也可以使用 API 删除包。

如果在启用请求转发时删除包,你可能会引入依赖混淆风险

删除包资源

删除与包关联的资源以减少存储。

先决条件:

  • 你必须至少拥有 Developer 角色。

要删除包资源:

  1. 在左侧边栏,选择搜索或跳转至并找到你的项目或群组。
  2. 选择部署 > 包注册表
  3. 包注册表页面,选择一个包以查看更多详细信息。
  4. 资源表中,找到要删除的资源名称。
  5. 选择垂直省略号( ellipsis_v )并选择删除资源

包资源将被永久删除。

你也可以使用 API 删除包资源。

清理策略

当你向包注册表上传同名同版本的包时,包会添加更多资源。

为了节省存储空间,你应该只保留最新的资源。使用清理策略来定义自动删除项目中包资源的规则,这样你就不必手动删除它们。

启用清理策略

先决条件:

  • 你必须至少拥有 Maintainer 角色。

默认情况下,包清理策略是禁用的。要启用它:

  1. 在左侧边栏,选择搜索或跳转至并找到你的项目。
  2. 选择设置 > 包和注册表
  3. 展开包注册表
  4. 管理包资源使用的存储下,适当设置规则。

可用规则

  • 保留的重复资源数量:某些包格式支持同一资源的多个副本。 你可以设置保留多少个重复资源的限制。 当达到限制时,最旧的资源会自动删除。 由 Maven 快照生成的唯一文件名不计为重复资源。

  • 保留的重复资源数量12小时运行一次

设置清理限制以节省资源

后台进程执行包清理策略。这个过程可能需要很长时间才能完成,并且在运行时会消耗服务器资源。

使用以下设置来限制清理工作进程的数量:

  • package_registry_cleanup_policies_worker_capacity:同时运行的清理工作进程的最大数量。 该数字必须大于或等于 0。 你应该从较小的数字开始,然后在监控后台工作进程使用的资源后增加它。 要移除所有工作进程并执行清理策略,请将此设置设置为 0。默认值为 2