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

如何实现Azure Web App自动部署以拉取Azure容器注册表中的最新镜像

嘿,这个问题我之前帮好几个开发者解决过——其实不用每次手动选标签,Azure有好几套现成的方案能让WebApp自动拉取ACR里的最新镜像。我给你列几个最实用的,你按需挑:

方案1:用WebApp自带的持续部署(最省心,推荐)

这是Azure官方主推的方式,直接在部署中心里开个开关就行:

  • 登录Azure门户,找到你的WebApp,进入部署中心
  • 切换到「设置」标签页,确认部署源已经选了「容器注册表」
  • 找到「持续部署」选项,把它从「关」改成「开」
  • 接下来可以配置标签过滤器:如果你的镜像用latest标签,直接留空或者选latest就行;如果是带版本号的标签(比如v1.0.2),可以用通配符比如v*来匹配所有版本标签,这样任何符合规则的新镜像推送都会触发部署
  • 保存设置后,下次Jenkins推新镜像到ACR,WebApp会自动检测到变化,直接拉取最新镜像部署,完全不用手动干预
方案2:把部署集成到Jenkins流水线(适合CI/CD全流程闭环)

如果想让Jenkins做完镜像推送后直接触发WebApp部署,不用等Azure自己检测,可以加个CLI命令步骤:

  • 首先确保Jenkins已经配置了Azure服务主体(有访问WebApp和ACR的权限)
  • 在Jenkins的流水线脚本里,推送镜像到ACR之后,添加这段Azure CLI命令:
    # 替换成你的资源信息
    az webapp config container set --name YourWebAppName --resource-group YourResourceGroupName --docker-custom-image-name YourACRName.azurecr.io/YourImageName:LatestTag
    
  • 如果你的镜像用的是latest标签,甚至可以简化成重启WebApp,它会自动拉取最新的latest镜像:
    az webapp restart --name YourWebAppName --resource-group YourResourceGroupName
    
方案3:用Event Grid自定义触发流程(适合复杂场景)

如果需要在部署前加一些自定义逻辑(比如镜像扫描、通知团队),可以用Azure Event Grid:

  • 给你的ACR创建一个Event Grid订阅,监听ImagePushed事件
  • 把事件的终点设为Azure Function或者Logic Apps
  • 在Function/Logic Apps里写逻辑:调用Azure API或者CLI来更新WebApp的容器镜像配置,触发部署
  • 这样每次有新镜像推送到ACR,就会自动触发你定义的完整流程
几个小提示
  • 如果用latest标签,一定要确保Jenkins推送时正确覆盖这个标签,不然WebApp拉取的还是旧镜像
  • 私有ACR要注意权限:要么在WebApp部署中心里配置ACR的用户名密码,要么给WebApp的系统托管标识授予ACR的AcrPull权限,后者更安全不用维护密码

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.01 00:52:31