Cassandra in a Container – Under the Hood
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