Artifactory清理最佳实践
Artifactory清理最佳实践
软件开发可能是一件混乱的事情。通常,Artifactory中驻留着许多永远不会被使用的工件。尽管Artifactory很好地利用了checksum-based存储,这不能取代您定期执行工件清理任务的需要。例如,尽管CI/CD构建配置为基于源代码控制提交,一旦这些快照构建被发送到Artifactory,它们实际上就不会被下载。
作为数据保留不同公司的政策不同,您有责任确定需要清理哪些数据。此后,Artifactory的内置的工具可以帮助你处理你想要处理的大多数情况。
一般来说,有三个用于在Artifactory中管理工件存储的各种技术:
- 清算超大的缓存
- 删除未使用的工件
- 限制的数量建立快照是保留
最后一个目的是确保释放在快照存储库被覆盖之前,构件被提升出快照存储库。
Artifactory支持马克斯独特的快照标记六个存储库类型:
- Gradle - Ivy
- Docker - SBT
Artifactory使用仓库布局系统要跟踪快照,就需要坚持一个定义模式在上传工件快照时。对于大多数客户来说,一旦这些限制被编程到系统中,剩下的就会自动无缝地发生。例如,以下Maven JAR文件被识别为快照运行3的一部分:
大多数CLI的客户将上传的快照坚持特定校验和政策和快照版本的行为,Artifactory的默认布局应该能够解决这些问题。否则,根据需要,您可以自定义存储库类型布局来处理特定的上传路径。启用该自定义选项在Artifactory中,更新您的本地存储库设置:
当启用此设置时,在任何给定的构建运行期间,如果上载达到您输入的Max Unique Snapshots数量,则较旧的版本将自动删除。最高的数字将永远是您的最新版本。
清理超大缓存
Artifactory的远程存储库将下载的文件存储在缓存中。保留整个缓存通常是有益的,因为它可以加速下载。然而,如果工件被用于给定的项目变更,您可能会发现这是值得的定期清除缓存。如果您希望Artifactory为您执行自动缓存清理,请转到远程存储库菜单的Advanced选项卡。在缓存下面未使用工件清理期(Hr)节中,您可以定义必须经过多少小时,在此之后不删除未使用的工件,而只是在内部标记为未使用的.
要配置和/或触发这种类型的缓存内部清理,可以在下面找到cron作业Admin >高级>维护Artifactory 6。X和Admin > Artifactory >高级>维护在Artifactory 7. x。的清理未使用的缓存工件字段将在默认情况下每天执行一次缓存清理。
删除未使用的工件
Artifactory不会自动删除二进制文件,除非您使用上述引用的字段进行定义异常.此外,您可以通过删除尚未下载的构件来节省大量的存储空间长时间的时间。自动清除这些未使用的文件的最佳方法是使用Artifactory用户插件。
其中最受欢迎的是artifactCleanup插件,它运行在cron作业,自动删除尚未下载的任何工件。x“天数。如果你想进一步定制这个插件,你可以更改Artifactory查询语言(AQL)语句:
请注意: artifactCleanup在Docker存储库上不起作用。Docker图像层作为单独的工件存储在图像文件夹中。如果一个层已经在大多数Docker客户端中,它就不会经常被下载。由于这种行为差异,我们建议使用cleanDockerImages插件.依赖于下载计数的manifest.json文件时,Docker客户端总是会下载它码头工人拉发生。
