我一直在阅读许多有关如何在容器化的Docker环境中部署Django的博客文章(如此(。
他们都使用docker-compose.yml
中的runserver
命令。
甚至Docker文档也可以做到这一点。
这让我感到惊讶,因为不建议使用Django Web服务器进行生产!
推荐的是将Web服务器指向WSGI.PY。
但是,我在django和docker上都没有找到任何文章为什么他们使用 runserver
而不是将apache或nginx指向 wsgi.py
。
为什么所有这些文章都使用内置的Django开发Web服务器来处理请求,而不是诸如Apache或nginx之类的完整爆炸网络服务器?
不是在开发中使用容器,以使环境尽可能接近生产吗?那为什么要建立不可生产的环境?
包括您给出的大多数指南的目的是为您提供ABC
指南,以快速使用Docker pancemize django。
当您决定阅读这些指南时,您肯定会被视为经验丰富的Django开发人员,但是新的Docker用户。因此,这些文章的重点不会告诉您如何使用生产服务器(例如UWSGI,Gunicorn(来管理您的Django应用程序,因为它假设您熟悉了。
作为新的Docker用户,它将付出更多的努力来告诉您如何使用Start Django项目将它们放在容器中。然后,一个简单的类似于Hello-World的项目,带有开发Django HTTP服务器将是最合适的选项。
但是,您仍然需要使用uwsgi, gunicorn
等来部署应用程序,例如https://hub.docker.com/r/django-uwsgi-nginx