Supported tags

  • latest, 1.10-python3
  • 1.10-python3-onbuild
  • 1.10-python2
  • 1.10-python2-onbuild
  • 1.9-python3
  • 1.9-python3-onbuild
  • 1.9-python2
  • 1.9-python2-onbuild
  • 1.8-python3
  • 1.8-python3-onbuild
  • 1.8-python2
  • 1.8-python2-onbuild

About this image

This image can be used as a starting point to run django applications. It uses gunicorn in the latest version to serve the wsgi application. The container picks up the wsgi entry point based on the environment variable DJANGO_APP.

Django is already installed within the version specified by the image. For example 1.9-python3 will contain the latest django version of 1.9.x. The image does also ship with the latest version of pytz installed.

The image does export port 8000.

It has a volume defined to generate static resources at /var/www/static. The volume /usr/django/app can be used for live reload during development.

The environment variable GUNICORN_RELOAD can be set to true to active live reload if a source file does change.

If the following environment variables are set to true the corresponding django command will be executing on container start:

  • DJANGO_MIGRATE
  • DJANGO_COLLECTSTATIC
  • DJANGO_COMPRESS

How to use this image

Basic Setup

FROM alang/django
ENV DJANGO_APP=demo                # will start /usr/django/app/demo/wsgi.py
COPY django_source /usr/django/app

Using the onbuild image

The -onbuild variant of the image does assume that your build directory (directory where the Dockerfile is located) contains a directory called src which is the place where the django source code is. This directory will be copied to /usr/django/app. The image does also assume that your source code contains a requirements.txt file in the src directory. All dependencies listed there will be installed.

Executing one off commands

How to execute one off django commands like makemigrations:

docker run --rm -v "src:/usr/django/app" alang/django python app/manage.py makemigrations

Advanced Configuration

A custom gunicorn config can be included:

COPY gunicorn.conf /etc/gunicorn/

User Feedback

Issues

If you have any problems with or questions about this image, please contact me through a GitHub issue.

Contributing

You are invited to contribute new features, fixes, or updates, large or small. Please send me a pull request.