You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用jf rt与AQL文件删除Artifactory中4周的Docker镜像层并保留更旧层?

可以通过jf rt工具结合AQL实现该需求

你可以通过编写精准的AQL查询筛选出存在时长恰好为4周的Docker镜像层,再借助jf rt工具完成删除操作。Docker镜像层在Artifactory中通常存储于对应Docker仓库的blobs/sha256/路径下,需结合这一特性编写查询逻辑。

步骤1:编写AQL查询文件(示例命名:delete-4w-layers.aql)

利用AQL的created时间字段,通过时间区间筛选恰好创建满28天(4周)的镜像层。示例AQL如下:

items.find({
  "repo": "your-docker-repo-name", // 替换为你的目标Docker仓库名称
  "path": {"$match": "blobs/sha256/*"}, // 匹配Docker镜像层的标准路径
  "created": {
    "$gte": "now-28d/d", // 锁定28天前的0点作为时间区间起始
    "$lt": "now-27d/d"   // 锁定27天前的0点作为时间区间结束,确保仅选中恰好存在4周的资源
  }
}).include("name", "repo", "path")

注:now-28d/d会将时间截断到28天前的当日0点,now-27d/d则是27天前的当日0点,这个区间内的文件即为恰好创建满4周的镜像层。

步骤2:使用jf rt工具执行删除操作

通过jf rt delete命令结合AQL查询批量删除匹配的镜像层:

jf rt delete --spec delete-4w-layers.aql

预检查建议

为避免误删,建议先添加--dry-run参数执行预校验,确认待删除资源符合预期:

jf rt delete --spec delete-4w-layers.aql --dry-run

需确保你拥有Artifactory中对应仓库的删除权限。

关键注意事项

  • 若你的Docker仓库路径结构特殊,需调整AQL中path的匹配规则。
  • Docker镜像层创建后通常不会被修改,因此使用created字段计算存在时长足够准确;若需基于修改时间筛选,可将created替换为modified字段。

内容的提问来源于stack exchange,提问作者Sarkis Zhamakortsyan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 09:40:04