AzureContainerApps@1任务无法认证ACR实例问题求助
问题原因
AzureContainerApps@1任务的containerRegistry参数设计逻辑和Docker@2不同:该参数预期接收的是ACR的纯名称(如myregistry),而非完整的ACR域名(myregistry.azurecr.io)。当你传入完整域名时,任务会自动在末尾追加.azurecr.io后缀,导致最终拼接出重复的地址myregistry.azurecr.io.azurecr.io,进而触发登录认证失败。
解决方法
有两种可行的修复方式,按需选择:
方式1:调整变量存储内容(推荐)
将变量acrContainerRegistry的值从完整域名myregistry.azurecr.io改为ACR的纯名称myregistry,然后修改任务配置:
- task: AzureContainerApps@1 inputs: azureSubscription: '你的Azure订阅名称' containerAppName: '你的ContainerApp名称' containerRegistry: '$(acrContainerRegistry)' # 传入ACR名称,任务自动拼接正确域名 imageToDeploy: '$(acrContainerRegistry).azurecr.io/你的镜像名:标签'
方式2:在任务中提取ACR名称
如果不想修改原有变量,可通过表达式从完整域名中提取ACR名称部分,传入containerRegistry参数:
- task: AzureContainerApps@1 inputs: azureSubscription: '你的Azure订阅名称' containerAppName: '你的ContainerApp名称' containerRegistry: '$(acrContainerRegistry.Split('.')[0])' # 提取域名中的myregistry部分 imageToDeploy: '$(acrContainerRegistry)/你的镜像名:标签'
内容的提问来源于stack exchange,提问作者Coder
相关产品推荐
相关产品推荐

