Cassandra in a Container – Under the Hood

Tue, Mar 8, 2016

Wanted to show more of the magic that’s going on behind the scenes in Cassandra in a Container on OSX.  The domain specific shell here is doing a bit of remembering for you:

1. It is remembering the location of containers in your project directory

2. Finding DockerFiles recursively within that directory and makes them avail. with choose

3. When the container is “run”, av remembers the container-id that was started

A combination of av-shell and the plugin av-docker is doing the work but there are a few files that are needed for docker to do the heavy lifting. Within the cassandra-1.2 directory there are three files necessary to duplicate what we showed above.

Dockerfile

Summary: This is the file read by docker in the </span><span style="font-weight: 400">build step

cassandra-start.sh

Summary: This file ensures cassandra is bound to the right ip so that we can access cassandra, and jmx from outside the container.  You may recall references to this script in the Dockerfile

Source: based on https://github.com/FlavioF/docker-cassandra/blob/master/src/start.sh

 

Runfile

Summary: The docker cli requires quite a few arguments.  Here are the options the </span><span style="font-weight: 400">run command within av passes to docker cli.  ip and container_path are also an av commands and are expanded