ARTIFACTORY:什么是“_uploads”文件夹下的ARTIFACTORY Docker仓库?

Fadi Rouhana
2023-01-22 11:06

当将Docker镜像推送到Artifactory时,在Docker存储库下会创建一个“_uploads”文件夹,如下所示:

用户添加图片

为了更好地理解“_uploads”文件夹的用法,我们需要了解Docker Push API是如何工作的。Docker分两部分推送图像:首先上传层,然后,一旦所有层都上传完,它就上传签署了清单,它引用图层,将它们拉到一起,形成一个有凝聚力的图像。

“_uploads”目录的用途是什么?

由于Docker客户端的工作方式,我们不知道层应该部署到哪个路径,所以层被部署到“_uploads”目录下。一旦Docker客户端推送了清单。Json文件,我们可以确定图层的路径,并将上传的图层从“_uploads”目录复制到该位置。最终,这些层将被每日清理工作从“_uploads”目录中删除,该工作将从“_uploads”目录中删除这些层。

清理“_uploads”目录

我们可以设置/修改以下系统属性JFROG_HOME美元/ artifactory / var / etc / artifactory / artifactory.system.properties
文件,以便配置清理作业,负责清理" _uploads "目录:

  • artifactory.docker.cleanup.maxAgeMillis -该属性确定作业要删除的文件的年龄。
  • artifactory.docker.cleanup.uploadsTmpFolderJobMillis -这个属性决定了这个作业应该运行的频率。

例如,要将层的最大年龄设置为24小时,并计划作业每天运行一次,请将下面的样例配置添加到JFROG_HOME美元/ artifactory / var / etc / artifactory / artifactory.system.properties
文件并重新启动Artifactory以使其生效:
artifactory.docker.cleanup.maxAgeMillis = 86400000
artifactory.docker.cleanup.uploadsTmpFolderJobMillis = 86400000

注意:根据作业的频率、本地存储库的数量和需要删除的文件量,更改频率可能会影响Artifactory的性能。

重要:在配置清理作业时,请确保考虑到慢速客户端上传大型Docker映像的情况。在这些情况下,从部署第一层到上传清单文件之间的时间差不能大于“artifactory.docker.cleanup”。maxAgeMillis”属性,否则,该层可能会被删除,从而导致推送失败。