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

Azure多容器Web App部署Django应用启动失败问题求助

解决步骤

1. 修正docker-compose配置

Azure多容器Web App的编排逻辑和原生docker-compose存在差异,需要先修改两个不符合平台规则的配置:

  • 删除container_name字段:平台会自动为容器添加全局唯一前缀,手动指定容器名会导致编排流程异常
  • 修改端口映射规则:平台会自动覆盖端口映射的左侧宿主端口,仅需要填写容器内实际监听的端口即可

修改后的配置参考:

version: "3.3"

services:
  backend:
    image: companyregistry.azurecr.io/company:latest
    ports:
      - "8000"

2. 调整平台识别配置

在Azure Web App的「配置」-「应用程序设置」中添加两个参数:

  • WEBSITES_PORT=8000:明确告知平台你的容器内服务监听的端口为8000,平台默认只会识别80、8080两个默认端口,非标准端口必须主动声明
  • WEBSITES_CONTAINER_START_TIME_LIMIT=600:将启动检测超时时间从默认的230秒延长到600秒,避免服务启动慢被误判为启动失败

3. 可选:适配健康检测规则

如果你的Django服务根路径/未配置路由、默认返回404,需要额外添加WEBSITES_HEALTH_CHECK_PATH参数,指定一个可以正常返回200状态码的路由(比如/admin或者自定义的健康检测接口),避免平台健康检测失败关停服务。


根因说明

你遇到的情况是Azure多容器Web App预览版的规则差异导致的:单容器场景下端口识别优先级更高,所以配置WEBSITES_PORT就可以正常运行;但多容器场景下需要同时适配docker-compose的端口规则和平台的健康检测逻辑,没有主动声明监听端口时,平台会默认检测80端口的连通性,而你的服务跑在8000端口,就会出现服务内部启动正常但平台检测不到、直接关停的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 07:54:06