首页 > 解决方案 > 使用 Artifactory API 按时间倒序列出 docker 镜像

问题描述

我正在尝试使用下面的 API 来获取 docker 图像列表,以便我可以填充 Jenkins 构建的下拉列表。有没有办法可以按时间倒序而不是字母数字顺序列出,以便最新图像位于顶部?谢谢。

/artifactory/api/docker/repo/v2/image/tags/list

标签: dockerartifactorydocker-registry

解决方案


您将不得不借助 Artifactory AQL 查询语言。一个示例 AQL 片段是...

items.find({"repo":{"$eq":"<repositoryname>"}, "name":{"$eq" : "<artifactoryItemName>"}}) .sort({"$desc" : ["created"]})

降序排序$desc由时间戳字段上的排序运算符指定created

limit您还可以通过在上述查询中添加额外内容来限制返回的结果数量...

items.find({"repo":{"$eq":"<repositoryname>"}, "name":{"$eq" : "<artifactoryItemName>"}}) .sort({"$desc" : ["created"]}).limit(10)

AQL 需要在 提交/artifactory/api/search/aql。同样可以通过 REST API 以及 POST 请求来完成。内容不应以 JSON 格式发布,而应直接以将查询指定为文本的方式发布。内容类型的标头是Content-Type:text/plain. 您可以使用基本身份验证或其他受支持的身份验证方法。

您可以使用 AQL 做很多事情。语法一开始可能看起来有点混乱。


推荐阅读