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

Terraform创建的Azure容器注册表定时任务执行失败求助

解决Azure容器注册表任务执行时的Unable to find image 'acr:latest'错误

问题现象

使用Terraform创建定时的azurerm_container_registry_task,执行terraform apply操作正常完成,但运行测试命令az acr task run -r some_acr -n purge时,触发错误:

Unable to find image 'acr:latest' locally

直接通过AZ CLI执行az acr run -r some_acr --filter '.*:^[0..9]*$' --ago 14d /dev/null能正常完成镜像清理,但使用相同YAML文件通过az acr run -r some_acr -f purge.yml /dev/null执行时,同样出现上述错误。

原因分析

  1. 镜像路径不完整:直接写acr会被ACR任务识别为要拉取的镜像名称(即acr:latest),而非ACR内置的purge工具。实际ACR Purge需要调用官方镜像mcr.microsoft.com/acr/acr-cli:latest。
  2. 正则表达式语法错误:[0..9]的写法不符合正则规范,无法匹配数字,正确的数字匹配应为[0-9]或\d。

修复后的Terraform配置

resource "azurerm_container_registry_task" "purge" {
  name                  = "purge"
  container_registry_id = azurerm_container_registry.some_acr.id
  platform { os = "Linux" }
  timer_trigger { name = "Schedule", schedule = "...cron..." }
  encoded_step {
    task_content = base64encode(<<-CONTENT
      version: v1.0.0
      steps:
        - cmd: mcr.microsoft.com/acr/acr-cli:latest purge --filter '.*:^[0-9]*$' --ago 14d
    CONTENT
    )
  }
  identity {
    type = "SystemAssigned"
  }
}

(注:已为任务的系统分配身份在目标ACR范围分配Container Registry Repository Catalog Lister和Container Registry Repository Contributor角色权限)

快速修复总结

  • 使用完整的ACR CLI镜像路径:用mcr.microsoft.com/acr/acr-cli:latest替代acr
  • 修正正则表达式中的数字匹配:将[0..9]改为[0-9]或[\d]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.10 06:04:51