Deploy Django using Nginx, Celery, Redis and Postgresql with Docker
A boilerplate to deploy Django with cool stuff. Also serves as an example project from these tutorial:
- Deploy Django, Gunicorn, NGINX, Postgresql using Docker
- Serve Static Files by Nginx from Django using Docker
- Docker: Use Celery in Django(Redis as Broker)
Where it is described how this boilerplate was created from scratch so that you can build your own.
- Ready to use with your django project.
- Combined with NGINX, Redis, Celery to handle relevent things.
- Alpine based images are used, so that sizes of the images are compartively low.
- Now comes built it with Numpy, Scipy and Pandas support. So you can integrate your datascience projects with this. Instructions for integrating these libraries are also shared in the
- With Numpy, Pandas and Scipy dependecies installed, the total size is 657MB(may differ if you have more packages). Without these, size reduces to 390MB.
- Now comes with support to install Pillow using django.
Now Featuring Numpy, Scipy and Pandas
Dockerfile, there are detailed instructions on how to install data science dependencies.
PS: Here is a
gist which is more useful for Numpy, Pandas, Scipy etc. And it is usable with this project's
docker-compose.yml file. Just you need to replace the
Dockerfile from ./compose directory with the one in the gist.
- First run
make buildinside root directory.
- Then run
make upto start up the project for first time.
- Use/update environment variables from
Checkout the commands section for more usage.
A default Django project resides in
src directory. So, when you start the project, you will see the following screen in
Also when you access the django container log via
make log-web, you will see the following:
To use this project, run this commands:
make upto build the project and starting containers.
make buildto build the project.
make startto start containers if project has been up already.
make stopto stop containers.
make shell-webto shell access web container.
make shell-dbto shell access db container.
make shell-nginxto shell access nginx container.
make logs-webto log access web container.
make logs-dbto log access db container.
make logs-nginxto log access nginx container.
make collectstaticto put static files in static directory.
make log-webto log access web container.
make log-dbto log access db container.
make log-nginxto log access nginx container.
make restartto restart containers.