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

如何在Azure Web App部署Streamlit应用?含端口及ACR登录问题

部署Streamlit到Azure Web App的问题解决

1. Dockerfile修改(端口与启动命令配置)

你的Dockerfile缺少启动命令,导致Streamlit默认使用8501端口运行,需要补充指定8000端口并配置CORS的启动命令,修改后的Dockerfile如下:

FROM python:3.10.11
WORKDIR /app
COPY . .
RUN pip install -r requirements.txt
EXPOSE 8000
# 指定启动命令:绑定8000端口、允许外部访问、关闭CORS限制
CMD ["python", "-m", "streamlit", "run", "Login.py", "--server.port", "8000", "--server.address", "0.0.0.0", "--server.enableCORS=false", "--server.enableXsrfProtection=false"]

2. 本地容器访问问题

之前运行容器时用了docker run -p 8000:8000,但因Dockerfile未指定启动命令,Streamlit实际跑在8501端口,导致端口映射不匹配。修改Dockerfile后,重新构建并运行容器:

docker build -t streamlit-meetingsumeriserqa:1.0 .
docker run -p 8000:8000 streamlit-meetingsumeriserqa:1.0

此时访问http://localhost:8000即可打开应用。

3. Azure容器注册表(ACR)登录超时问题

超时通常由网络或凭证问题导致,可尝试以下解决步骤:

  • 切换到稳定的网络环境(如关闭代理),确保能正常访问Azure服务
  • 登录Azure门户,进入目标ACR的「设置」→「访问密钥」,复制正确的用户名和密码(避免手动输入错误)
  • 使用Azure CLI登录ACR(更稳定,无需手动输入密码):
    # 先登录Azure账号(首次使用需执行)
    az login
    # 登录ACR
    az acr login --name meetingsummeriser
    

4. Azure Web App部署的额外配置

部署到Azure Web App时,需确认以下配置:

  • 选择「容器」部署方式,指定ACR中的镜像地址
  • 在Web App的「配置」→「常规设置」中,无需额外填写启动命令(Dockerfile已包含CMD指令)
  • 若端口存在冲突,在「配置」→「应用程序设置」中添加WEBSITES_PORT变量,值设为8000,确保Azure Web App转发到容器的8000端口

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 22:35:03