【问题标题】:How to deploy a streamlit app to Heroku within a Docker container?如何在 Docker 容器中将流式应用程序部署到 Heroku?
【发布时间】:2022-01-23 03:55:37
【问题描述】:

我最近开始使用 streamlit,这绝对是一个很棒的用于仪表板和可视化机器学习应用程序的库。

但是,我目前的部署工作流程是 Docker 和 Heroku。我找不到关于如何轻松地将托管在 Docker 容器中的 streamlit 应用程序部署到 Heroku 的简单文档。因此,我想记录一些我在这里找到的简单内容。

【问题讨论】:

    标签: python docker heroku streamlit


    【解决方案1】:

    经过一些研究并使用代码,这似乎是最简单的方法:

    1. 创建.streamlit 文件夹,config.toml 将在其中保存
    2. config.toml 中编写以下代码:
    [browser]
    serverAddress = '0.0.0.0'
    
    1. 在最后使用您想要的任何内容构建您的 Dockerfile,添加以下命令:
    CMD streamlit run --server.port $PORT app.py
    

    例如,这是我基于streamlit当前提供的code example的完整Dockerfile

    FROM continuumio/miniconda3
    
    WORKDIR /home/app
    
    RUN apt-get update
    RUN apt-get install nano unzip
    RUN apt install curl -y
    
    RUN curl -fsSL https://get.deta.dev/cli.sh | sh
    RUN pip install boto3 pandas gunicorn streamlit
    COPY . /home/app
    
    CMD streamlit run --server.port $PORT app.py
    

    在开发中,只需使用 PORT 环境变量和如下端口映射运行您的容器:

    docker run -it MY_DOCKER_IMAGE -p HOST_PORT:CONTAINER_PORT -e PORT=CONTAINER_PORT

    如果在本地一切正常,那么您可以按照本教程将您的容器部署到 Heroku:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-05
      • 2020-01-13
      • 2021-07-21
      • 2017-02-19
      • 2020-10-08
      • 2020-05-08
      • 2019-02-11
      • 2017-11-06
      相关资源
      最近更新 更多