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

基于Docker的Azure Web App无法运行:端口80无HTTP ping响应

问题解决方法

根因分析

  • Streamlit应用默认监听8501端口,当前Dockerfile未指定服务端口为80,也未配置允许外部IP访问,导致Azure的健康探活请求无法得到响应,触发启动失败错误。
  • 容器内的Streamlit服务默认绑定127.0.0.1回环地址,仅支持容器内部访问,Azure平台的外部探活请求无法进入容器。

解决方案

步骤1:修改Dockerfile启动参数

替换现有Dockerfile中的ENTRYPOINT配置,补充Streamlit启动所需的端口、地址、无头模式参数,修改后的完整Dockerfile如下:

FROM python:3.7-slim
COPY . /app
WORKDIR /app
RUN pip install -r requirements.txt
EXPOSE 80 
RUN mkdir ~/.streamlit
ENTRYPOINT ["streamlit", "run", "--server.port=80", "--server.address=0.0.0.0", "--server.headless=true"]
CMD ["my_web_app.py"]

参数说明:

  • --server.port=80:指定Streamlit服务监听80端口,和你已配置的PORT、WEBSITES_PORT参数匹配
  • --server.address=0.0.0.0:允许所有IP地址访问服务,支持Azure的外部探活请求进入容器
  • --server.headless=true:启用无头模式,避免容器启动时尝试打开浏览器导致异常

步骤2:本地验证镜像

修改后在本地重新构建镜像,执行以下命令测试可用性:

docker build -t test-streamlit .
docker run -p 8080:80 test-streamlit

访问本地的localhost:8080确认可以正常打开应用,说明配置无误。

步骤3:重新部署到Azure

将修改后的代码推送到Azure容器注册表,重新触发Web App部署即可,不需要调整你已配置的PORT、WEBSITES_PORT、WEBSITES_CONTAINER_START_TIME_LIMIT参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 19:36:05