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

Docker化Flask应用部署Azure App Service启动超时求助

问题诊断与解决方案

从你提供的容器日志里能直接揪出核心矛盾:

2020-01-18T20:21:10.834294374Z * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
2020-01-18 20:35:32.525 ERROR - 容器xyz未响应端口80的HTTP探测,站点启动失败。请查看容器日志调试。

Azure App Service启动容器时已经给你设置了PORT=80的环境变量,但你的Flask应用还在默认的5000端口运行,导致平台的健康探测连不上80端口,最终判定启动失败。

修复步骤

1. 修改Flask代码,监听PORT环境变量

把启动代码改成优先读取环境变量里的端口,而不是硬编码5000:

import os
from flask import Flask

app = Flask(__name__)

# 你的路由和业务逻辑...

if __name__ == "__main__":
    # 优先取Azure设置的PORT变量,本地测试默认用5000
    port = int(os.environ.get("PORT", 5000))
    app.run(host="0.0.0.0", port=port)

2. 调整Dockerfile(可选但更规范)

如果你的Dockerfile里有EXPOSE指令,保持和默认端口一致即可(Azure会通过环境变量覆盖,不用硬写80):

# 基础镜像、依赖安装等步骤...
EXPOSE 5000
CMD ["python", "main.py"]

3. 重新构建并推送镜像

用新的版本标签构建推送,避免和旧镜像混淆:

docker build -t gdeol4/azure-ml:version-9 .
docker push gdeol4/azure-ml:version-9

4. 更新Azure App Service配置

在Azure门户里把App Service的镜像标签改成新的version-9,或者手动触发一次重新部署,确保平台拉取到最新镜像。

本地验证小技巧

可以先在本地模拟Azure的环境测试:

PORT=80 python main.py

然后访问http://localhost:80确认应用正常运行,提前排查问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 11:52:32