You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

Docker部署Streamlit应用无法连接的问题排查求助

Docker部署Streamlit应用无法连接的问题排查求助

我一直在尝试部署一个带有Streamlit应用的容器,后续计划上传到EC2,所以先测试它在Docker容器内的运行情况。我参考了Streamlit官方的Docker部署指南和一篇社区的部署教程,但遇到了棘手的问题:

在虚拟环境中部署时,应用能正常显示,完全没问题;但通过Docker镜像部署后,浏览器访问http://0.0.0.0:8501/时却提示“无法连接”,换成localhost:8501也一样打不开。

Docker容器启动后明明输出了正常的提示:

You can now view your Streamlit app in your browser.

  URL: http://0.0.0.0:8501

可浏览器就是加载失败,显示“Hmmm… can't reach this page”或者“Unable to connect”,虚拟环境下却完全正常。

我已经做了这些尝试来解决问题:

  • 在Dockerfile中暴露了Streamlit的默认端口8501
  • 添加了Streamlit的config配置文件
  • 在启动命令中明确指定了--server.port=8501--server.address=0.0.0.0
  • 运行容器时使用了-p 8501:8501参数将容器端口映射到本地机器
  • 也尝试过社区论坛和Stack Overflow上的相关解决方案,但问题依然存在

以下是我的Dockerfile内容:

# app/Dockerfile

FROM python:3.11

WORKDIR /app

COPY requirements.txt .

RUN pip install -r requirements.txt

COPY app.py .

RUN mkdir /app/streamlit

COPY config.toml /app/streamlit

EXPOSE 8501

HEALTHCHECK CMD curl --fail http://localhost:8501/_stcore/health

ENTRYPOINT ["streamlit", "run", "app.py", "--server.port=8501", "--server.address=0.0.0.0"]

有没有大佬能帮我排查下到底哪里出问题了呀?

备注:内容来源于stack exchange,提问作者OmegaCoding

火山引擎 最新活动