【问题标题】:Django + Docker best practice: use runserver or wsgi.py?Django + Docker 最佳实践:使用 runserver 还是 wsgi.py?
【发布时间】:2019-07-06 18:05:51
【问题描述】:

我已经阅读了很多关于如何在容器化 Docker 环境中部署 Django 的博文(例如 this one)。

他们都使用docker-compose.yml中的runserver命令。

即使是Docker documentation does this

这让我很吃惊,因为使用 Django 网络服务器是not recommended for production

推荐的是pointing the webserver to wsgi.py

但是,我在 Django 和 Docker 上找到的文章都没有解释为什么他们使用 runserver 而不是将 apache 或 nginx 指向 wsgi.py

为什么所有这些文章都使用内置的 Django 开发网络服务器来处理请求,而不是像 apache 或 nginx 这样的成熟网络服务器?

在开发中使用容器不是为了让环境尽可能接近生产环境吗?那为什么要构建一个非生产就绪的环境呢?

【问题讨论】:

    标签: django docker


    【解决方案1】:

    大多数指南(包括您提供的 this)的目的是为您提供 ABC 指南,以使用 docker 快速容器化您的 django 应用程序。

    当您决定阅读这些指南时,您肯定被认为是经验丰富的 django 开发人员,但您是新的 docker 用户。所以本文的重点不会告诉你如何使用生产服务器(如 uwsgi、gunicorn)来管理你的 django 应用程序,因为它假设你已经熟悉了。

    作为一个新的 docker 用户,它会花更多的精力告诉你如何通过启动 django 项目将它们 docker 化到容器中。那么,一个带有开发 django http server 的简单的 hello-world-like 项目将是最合适的选择。

    但是,您仍然需要使用 uwsgi, gunicorn 等来部署您的应用程序,例如https://hub.docker.com/r/dockerfiles/django-uwsgi-nginx

    【讨论】:

    • 这是有道理的。我想至少有一篇文章会提到这么多。
    猜你喜欢
    • 1970-01-01
    • 2023-02-05
    • 1970-01-01
    • 2019-02-18
    • 1970-01-01
    • 1970-01-01
    • 2016-04-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多