This Dockerfile allows you to build a Docker container with a fairly standard and speedy setup for Django with uWSGI and Nginx.
uWSGI from a number of benchmarks has shown to be the fastest server for python applications and allows lots of flexibility.
Nginx has become the standard for serving up web applications and has the additional benefit that it can talk to uWSGI using the uWSGI protocol, further elinimating overhead.
Most of this setup comes from the excellent tutorial on https://uwsgi.readthedocs.org/en/latest/tutorials/Django_and_nginx.html
This repo is a fork of https://github.com/dockerfiles/django-uwsgi-nginx, I made some fixes to have the image working out-of-the-box.
Feel free to clone this and modify it to your liking. And feel free to contribute patches.
- docker build -t webapp .
- docker run -d -p 80:80 webapp
curl localhost
You should see the HTML source of Django welcome page.
In /app currently a django project is created with startproject. You will probably want to replace the content of /app with the root of your django project.
uWSGI chdirs to /app so in uwsgi.ini you will need to make sure the python path to the wsgi.py file is relative to that.