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
Dockerfile
. - 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.
In the 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 build
inside root directory. - Then run
make up
to start up the project for first time. - Use/update environment variables from
.envs
folder.
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 8000
port:
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 up
to build the project and starting containers.make build
to build the project.make start
to start containers if project has been up already.make stop
to stop containers.make shell-web
to shell access web container.make shell-db
to shell access db container.make shell-nginx
to shell access nginx container.make logs-web
to log access web container.make logs-db
to log access db container.make logs-nginx
to log access nginx container.make collectstatic
to put static files in static directory.make log-web
to log access web container.make log-db
to log access db container.make log-nginx
to log access nginx container.make restart
to restart containers.
MIT.
Feel free to fork and create PR.