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

通过Visual Studio发布镜像到Azure Container Registry时镜像未更新问题

问题排查与解决步骤

一、先解决ACR latest标签镜像未更新的问题

你遇到的发布后ACR镜像无更新是核心前置问题,优先按以下顺序排查:

  • 检查Visual Studio发布配置的镜像标签规则
    打开项目对应的发布配置文件(后缀为.pubxml),确认<DockerImageTag>配置项的值是否为latest。Visual Studio默认发布配置可能使用自动递增的版本号作为镜像标签,不会自动覆盖latest标签,导致你每次推送的是带版本号的新镜像,latest标签始终对应旧镜像。
  • 检查ACR不可变标签配置
    进入Azure门户对应ACR的仓库设置页,查看是否开启了不可变标签规则。如果开启该规则,已存在的latest标签会被锁定无法被新镜像覆盖,推送操作会静默跳过标签更新,仅触发ACR的访问计数变动。需要临时关闭对应规则后再重新推送镜像。
  • 验证推送账号权限
    你用于发布的Azure账号需要持有ACR的AcrPush角色权限,缺少镜像覆盖、推送权限时,发布操作不会报错但无法更新已有的latest标签。可在ACR的访问控制(IAM)页面,核对当前账号的权限配置,缺失权限则补充对应角色后重试。
  • 查看发布日志定位失败原因
    在Visual Studio顶部菜单栏选择「工具>选项>项目和解决方案>生成并运行」,将MSBuild输出详细程度调整为详细,重新执行发布操作后查看输出面板的日志,确认是否有标签冲突、推送被拒绝的明确报错。

二、ACR镜像更新后解决App Service未更新的问题

确认ACR的latest标签更新时间正常后,按以下步骤配置App Service:

  • 禁用App Service镜像缓存
    Azure App Service拉取私有镜像时默认启用本地缓存,即使ACR镜像更新,重启服务也可能直接使用本地缓存的旧镜像。进入App Service的「配置>应用设置」页面,新增配置项WEBSITE_DOCKER_PRIVATE_REGISTRY_CACHE_IMAGE = false保存后重启服务即可。
  • 确认App Service镜像拉取配置正确
    进入App Service的「部署中心>设置」页面,确认镜像标签选择的是latest,同时确认配置的ACR访问凭证有效(推荐使用系统托管身份,分配AcrPull权限即可),避免拉取新镜像失败后回滚到旧版本。
  • 强制触发镜像拉取
    可以通过Azure CLI执行命令az webapp restart --name <你的App Service名称> --resource-group <所属资源组名称>强制重启服务,触发完整的镜像拉取流程。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 14:48:04