Docker Setup

This guide will walk you through installing and launching of Runbook with Docker, Docker Machine, and Docker Compose. The benefit of this setup is that it could be used for Development and Production environments.

While each application component has a Dockerfile, for ease of deployment we utilize Docker Machine and Compose to start, stop, and link Docker containers.

Before you start, clone the Runbook GitHub Repository and then navigate to the local project directory.

Install Docker Machine

Start by installing Docker Machine, which installs Docker Engine as well. Once done, test the install:

$ docker-machine --v
docker-machine version 0.2.0 (8b9eaf2)

Now start a new Machine and point Docker at it:

$ docker-machine create -d virtualbox runbook-dev;
$ eval "$(docker-machine env runbook-dev)"

In order to view currently running machines use the docker-machine command with the ls option:

$ docker-machine ls
NAME          ACTIVE   DRIVER         STATE     URL                         SWARM
runbook-dev   *        virtualbox     Running   tcp://192.168.99.100:2376

Before continuing make sure machines are active. If not, execute docker-machine active runbook-dev.

Install Docker Compose

First, install Docker Compose.

$ docker-compose --version
docker-compose 1.2.0

Deployment

Now that Docker Machine and Compose are installed we can use Compose to launch, sync, and manage the containers. All Compose commands must be run from the same directory that the docker-compose.yml file is in. In our case this is the main (or root) project director.

Building images

$ docker-compose build

Starting up containers

$ docker-compose up -d

During boot the bridge container will execute /code/mgmtscripts/create_db.py which will connect to RethinkDB and create the required database structure.

Stopping containers

Run the following command to stop all containers:

$ docker-compose kill

Individual containers can be stopped by specifying the container name at the end of the command (I.E. docker-compose kill web).

Reading logs/output

To review logs or container output you can use the logs option with compose.

$ docker-compose logs

Resetting

Sometimes during development you may want to clear the database or wipe active containers. To do this simply run the following commands.

$ docker-compose kill
$ docker-compose rm
$ docker-compose build
$ docker-compose up -d

Accessing the Web Application

To access the web application you can simply enter the IP of the running machines into your browser such as http://192.168.33.10.

You can find machine IP's with:

$ docker-compose ip