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

如何在Terraform中为Linux Azure App Service启用Docker持续部署?

问题描述

我们正在通过Terraform部署Linux App Service,希望每次向容器注册表推送新的Docker容器时,该服务都能拉取最新镜像。当前使用的Terraform资源如下:

resource "azurerm_linux_web_app" "name" {
  # 现有配置内容
}

启用持续部署可通过部署中心或执行以下Azure CLI命令实现:

az webapp deployment container config --enable-cd true --name name --resource-group rg

但我们希望仅通过Terraform完成配置,不想借助CLI命令补充操作。查阅Terraform官方文档后未找到相关配置方法,请问是否有可行的实现方式?


解决方案

可以通过azurerm_linux_web_app资源的app_settings配置项直接启用容器持续部署,无需依赖Azure CLI。具体配置逻辑如下:

  • 添加DOCKER_ENABLE_CI = "true"应用设置,开启镜像更新自动触发部署的功能
  • 确保已配置容器注册表的认证信息(针对私有镜像仓库),包括DOCKER_REGISTRY_SERVER_URL、DOCKER_REGISTRY_SERVER_USERNAME、DOCKER_REGISTRY_SERVER_PASSWORD
  • 在site_config的application_stack中指定目标镜像及标签(建议使用latest标签配合自动部署)

完整的Terraform配置示例:

resource "azurerm_linux_web_app" "name" {
  name                = "your-webapp-name"
  resource_group_name = "your-resource-group"
  location            = azurerm_resource_group.your_rg.location
  service_plan_id     = azurerm_service_plan.your_plan.id

  site_config {
    application_stack {
      docker_image     = "your-registry.azurecr.io/your-image:latest"
      docker_image_tag = "latest"
    }
  }

  app_settings = {
    DOCKER_ENABLE_CI                = "true"
    DOCKER_REGISTRY_SERVER_URL      = "https://your-registry.azurecr.io"
    DOCKER_REGISTRY_SERVER_USERNAME = "your-registry-username"
    DOCKER_REGISTRY_SERVER_PASSWORD = "your-registry-password"
  }
}

配置完成后,当你向指定容器仓库推送新的latest镜像时,App Service会自动检测到镜像更新,拉取最新版本并完成部署。如果使用Docker Hub等第三方仓库,只需调整对应的注册表URL和认证信息即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 12:12:07