【问题标题】:Run multiple Dash Apps under Nginx, Gunicorn, Flask & Docker在 Nginx、Gunicorn、Flask 和 Docker 下运行多个 Dash 应用程序
【发布时间】:2018-08-07 21:17:47
【问题描述】:

我的项目尝试运行多个 Dockerized(不限于)Dash 应用程序,这些应用程序都使用 Flask 和由 Gunicorn 提供的 HTTP WSGI,由 Nginx 代理。 Plot.ly/Dash 创始人@chriddyp 和其他人对此进行了概述。 一个要求是通过 HTTPS 为 Dash 应用程序提供服务,这可以通过简单安装的 Letsencrypt 证书轻松完成。

问题:这是否应该分成多个Docker容器,即:主容器上的Nginx,每个应用程序容器上的Dash/Flask/Gunicorn和前端代理(Nginx容器)上的SSL证书?

这是否需要 Docker SDN(软件定义网络)方法才能使其发挥作用?

这是在 AWS 中我的普通 EC2 上运行的。 (不是豆茎)

任何指导将不胜感激。一切正常后,我会在 Github 上分享所有内容。

【问题讨论】:

    标签: docker nginx amazon-ec2 plotly-dash


    【解决方案1】:

    每个应用程序一个容器,因此一个用于 Nginx,一个用于 Gunicorn,一个用于 Dash,一个用于 Flask。

    您不需要 Docker 的主机网络,但肯定是一个优势,因为您可以解析其他容器的主机名,所以当代理传递时,例如,如果您的 Dash 容器有 dash 主机名,您可以使用 http://dash

    我建议使用 Docker Compose 来完成这一切,因为它会让事情变得更容易。

    如果你在 unix socket 上运行 Gunicorn,你需要一个卷来共享到 Nginx 容器,以便它可以访问它。

    不确定是否有一些与 EC2 和 Docker 相关的特殊内容,遗憾的是我没有 AWS 知识。有人会填写这个:)

    【讨论】:

    • 非常有帮助,杜桑。卷问题可以在这个 Github Repo(一位同事)github.com/ericcgu/Flask_Dash_Container 中回答。我已经在 EC2 上成功运行了 Eric 的 repo,他使用 Nginx 作为 Gunicorn/Flask/Dash 的反向代理。现在,挑战是添加 SSL 并允许多个应用程序。
    • docker 默认网桥怎么样? docs.docker.com/network/bridge/…
    猜你喜欢
    • 2022-01-18
    • 1970-01-01
    • 2020-01-10
    • 2023-03-31
    • 2018-02-01
    • 2017-01-13
    • 2022-01-15
    • 2019-03-07
    相关资源
    最近更新 更多