gpt4 book ai didi

bash - Azure docker 注册表 - 用于检查 docker 标记是否已存在的 bash 脚本

转载 作者:行者123 更新时间:2023-12-02 18:04:05 27 4
gpt4 key购买 nike

我需要构建一个镜像(作为 CI 产品),并且仅当标签版本不在我们的私有(private) azure 托管 docker 注册表中时才推送它。

关注此stackoverflow answer我尝试使用 azure 注册登录服务器复制 bash 脚本,但它似乎不支持完全相同的 api(获取 404)。如何通过带有 azure 容器注册表的 http/REST api 实现“检查注册表中是否存在版本/标签”? (不使用内置的az工具)

最佳答案

How can I achieve this "check if version/tag exists in registry" via the http/REST api with azure container registry?

在 Azure 容器注册表中,我们应该使用 Authorization: Basic 对其进行身份验证。

您可以使用 ACR 用户名和密码来获取凭据,然后使用此脚本列出所有标签:

export registry="jasonacrr.azurecr.io"
export user="jasonacrr"
export password="t4AH+K86xxxxxxx2SMxxxxxzjNAMVOFb3c"
export operation="/v2/aci-helloworld/tags/list"
export credentials=$(echo -n "$user:$password" | base64 -w 0)
export catalog=$(curl -s -H "Authorization: Basic $credentials" https://$registry$operation)
echo "Catalog"
echo $catalog

输出如下:

[root@jasoncli jason]# echo $catalog
{"name":"aci-helloworld","tags":["v1","v2"]}

然后你可以使用shell来检查标签是否存在。

希望这有帮助。

<小时/>

更新:

有关 Azure 容器注册表与 Azure AD 集成的更多信息,请参阅此 article .

关于bash - Azure docker 注册表 - 用于检查 docker 标记是否已存在的 bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49618657/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com