2.11. Creating a Development Server using Docker

You may use Docker to create a set of containers that run a development server. The file docker-compose.yml and the folder docker contains the configuration files to create the required images and instantiate them as containers. The current configuration creates the following containers:

OnTask Server

Built on top of an ubuntu instance with Python 3, Django and Apache installed. The application is installed internally on port 80 in the container mapped to port 8080 of the local machine.

Message Queue

Built on top of an ubuntu instance with Python 3, Django and an the OnTask source code. It executes a Celery daemon to receive execution requests.

Relational Database

Built on top of the latest postgres docker image. It contains the database server with the data being stored in a separated volume (preserved among executions).

Redis

Built on top of the latest redis docker image. It contains the cache server and broker for the message passing between Django and Celery.

The file docker-compose.yml contains the parameters to build the four containers and start the execution of OnTask.

After installing the Docker environment in your computer and creating the configuration file for the server running in the container, the sequence of commands to start the server is:

docker-compose build
docker-compose up

The process creates the containers and the server will be accessible through port 8080 in the host machine.