Azure CLI - acb.yaml 不存在

问题描述 投票:0回答:1

我正在尝试创建计划的 ACR 任务以使用以下命令从存储中删除旧图像:

PURGE_CMD="acr purge --filter 'worker:.*' --untagged --ago 1d"
 az acr task create --name remove_old_images_worker --cmd "$PURGE_CMD" --schedule
 "0 0 * * *" --registry registry --context /dev/null

但它返回给我一个错误:

acb.yaml does not exist.

同样有趣的是,就在几天前,它还适用于类似的任务。

azure azure-cli azure-acr
1个回答
0
投票

错误消息“acb.yaml 不存在”意味着 Azure CLI 期望在您指定的上下文位置中找到

acb.yaml
文件。如果您指定
/dev/null
作为上下文,则不清楚为什么 CLI 会期望在那里找到文件,除非 CLI 或 ACR 服务存在错误或临时问题。使用 Azure CLI 在 Azure 容器注册表 (ACR) 中创建计划任务时,
--context
参数用于指定源代码的位置,该位置通常包含
acb.yaml

但是,对于仅运行命令而不需要构建上下文的清除任务,您应该使用特殊值

--context /dev/null

不要使用

/dev/null
,而是尝试使用带有空
acb.yaml
文件的虚拟上下文:

mkdir dummy-context

enter image description here

touch dummy-context/acb.yaml

enter image description here

az acr task create \
  --name remove_old_images_worker \
  --registry <registryname>\
  --cmd "$PURGE_CMD" \
  --schedule "0 0 * * *" \
  --context /dev/null \
  --commit-trigger-enabled false \
  --pull-request-trigger-enabled false

enter image description here

不用说,下面的事情必须首先确保。

  • 在 ACR 中创建任务所需的权限。
  • 已安装最新版本的 Azure CLI
  • 命令中没有拼写错误或缺少参数
  • 您是否已达到任务数量限制 可以在您的 ACR 中创建。

此外,请确保您在

acb.yaml
文件所在的正确目录中运行该命令。如果您从不同的目录运行该命令,则可能需要使用
acb.yaml
参数指定
--context
文件的完整路径。

参考资料:

© www.soinside.com 2019 - 2024. All rights reserved.