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

如何通过ARM模板启用Azure容器Web应用的持续部署

用ARM模板配置Azure App Service容器的持续部署

当然可以用ARM模板搞定容器的持续部署,完全能满足你想要的配置一致、可重复、可销毁的需求!下面给你具体的实现方案和关键配置细节:

核心配置要点

在ARM模板的Microsoft.Web/sites资源中,主要通过以下几个属性来配置持续部署:

  • scmType:指定持续部署的源类型,比如用Azure容器注册表(ACR)就设为AzureContainerRegistry,用GitHub就设为GitHub,外部Git仓库则用ExternalGit。
  • repositoryUrl:对应源的地址——ACR的话就是你的镜像仓库地址(比如your-registry.azurecr.io/your-image),Git源的话就是仓库的克隆地址。
  • branch:Git源填要跟踪的分支名;ACR的话填要监听的镜像标签(比如latest)。
  • isManualIntegration:设为false就能启用自动触发部署,源有更新时会自动同步到App Service。

示例ARM模板片段

下面是针对ACR镜像持续部署的简化模板,你可以根据自己的源类型调整:

{
  "type": "Microsoft.Web/sites",
  "apiVersion": "2023-01-01",
  "name": "[parameters('siteName')]",
  "location": "[parameters('location')]",
  "properties": {
    "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', parameters('appServicePlanName'))]",
    "siteConfig": {
      "linuxFxVersion": "[concat('DOCKER|', parameters('acrRegistryName'), '.azurecr.io/', parameters('imageName'), ':', parameters('imageTag'))]",
      "alwaysOn": true
    },
    "scmType": "AzureContainerRegistry",
    "repositoryUrl": "[concat(parameters('acrRegistryName'), '.azurecr.io/', parameters('imageName'))]",
    "branch": "[parameters('imageTag')]",
    "isManualIntegration": false,
    "registryCredentials": {
      "url": "[concat(parameters('acrRegistryName'), '.azurecr.io')]",
      "username": "[parameters('acrUsername')]",
      "password": "[parameters('acrPassword')]"
    }
  },
  "dependsOn": [
    "[resourceId('Microsoft.Web/serverfarms', parameters('appServicePlanName'))]"
  ]
}

关键部分说明

  • linuxFxVersion:指定要部署的Docker镜像,格式必须是DOCKER|registry/image:tag,这是Linux App Service识别容器镜像的标准格式。
  • registryCredentials:当用ACR时,需要提供访问凭证,确保App Service能拉取镜像并监听标签更新。如果想更安全,也可以用托管身份替代密码:给App Service分配系统托管身份,然后在ACR的IAM里添加AcrPull权限,同时删掉模板里的registryCredentials配置即可。
  • 如果是用GitHub仓库的Dockerfile自动构建部署,只需把scmType改成GitHub,repositoryUrl填你的GitHub仓库地址,branch填目标分支,还可以添加gitHubActionConfiguration字段来自定义构建步骤。

验证与注意事项

  • 部署完模板后,你可以在App Service的部署中心看到配置已经生效,当ACR镜像更新对应标签,或者Git仓库指定分支有提交时,会自动触发新部署。
  • 务必确保你的App Service Plan是Linux类型,因为容器部署只能在Linux环境下运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 09:03:43