如何删除 Gitlab 自托管中的旧工件?

Posted

技术标签:

【中文标题】如何删除 Gitlab 自托管中的旧工件?【英文标题】:How to delete old artifacts in Gitlab self hosted? 【发布时间】:2021-10-29 22:31:20 【问题描述】:

我们有一个在一个实例上运行的自托管 Gitlab,但我们时不时地面临空间问题,因为大型工件填满了空间。 我们必须手动删除旧的工件文件夹。

有没有办法让这个自动化?可能是一个通宵运行并删除 7 天以上的工件文件夹的脚本?

Gitlab Admin 中的默认到期时间设置为 5 天,但这并不意味着它们已从框中删除。

【问题讨论】:

【参考方案1】:

当工件过期时,它们应该从磁盘中删除。如果您的工件没有从您的物理存储中删除,则说明您的存储存在配置问题。确保您对存储配置具有写入和删除权限。

在设置默认过期设置之前创建的工件仍需要手动删除 - 但要删除一次。所有新工件都将遵守工件过期时间。

但是,您应该通过 API 执行此操作,而不是直接在文件系统上执行此操作。否则 GitLab 的数据库认为存在的内容与磁盘上实际存在的内容会不匹配。

有关示例脚本:请参阅this answer。

另请注意,在某些情况下会保留工件,例如最新的工件。必须运行新管道才能使旧工件过期。请参阅documentation 了解更多信息。

【讨论】:

以上是关于如何删除 Gitlab 自托管中的旧工件?的主要内容,如果未能解决你的问题,请参考以下文章

如何检索 GitLab 托管的 Kubernetes 代理 ClusterAgentID 以删除代理?

如何在 gitlab 中删除 terraform 资源?

如何清理 Firebase 托管中的旧部署版本?

如何从 Firebase 中删除托管网站

Core Data,我如何有效地查找和删除托管对象

如何在GitLab存储库中删除Tag