Using Docker for Development

Using Docker to build software allows you to run and test code without having to worry about external dependencies such as cache servers and databases.


The following setup is only meant for local development. See Docker for production use of Docker.

Local Prerequisites

You will need to install Docker and docker-compose before performing the following steps.


Our configuration exposes PostgreSQL, Redis and Elasticsearch ports. If you have problems running this docker file because of port conflicts, you can remove ports section from docker-compose.yml.


  1. Build the containers using docker-compose

    $ docker-compose build
  2. Prepare the database

    $ docker-compose run web python3 migrate
    $ docker-compose run web python3 collectstatic
    $ docker-compose run web python3 populatedb --createsuperuser

    The --createsuperuser argument creates an admin account for with the password set to admin.

  3. Run the containers

    $ docker-compose up

By default, the application is started in debug mode, will automatically reload code and is configured to listen on port 8000.