#/bin/bash command=$1 config=$2 config_file="$config".yml cidfile=cids/"$config".cid cidbootstrap=cids/"$config"_boostrap.cid image=samsaffron/discourse docker_path=`which docker` usage () { echo "Usage: launcher COMMAND CONFIG" echo "Commands:" echo " start: Start/initialize a container" echo " stop: Stop a running container" echo " restart: Restart a container" echo " destroy: Stop and remove a container" echo " ssh: Start a bash shell in a running container" echo " logs: Docker logs for container" echo " bootstrap: Bootstrap a container for the config base on an image" exit 1 } install_docker() { echo "Docker is not installed, make sure you are running on the 3.8 kernel" echo "The best supported Docker release is Ubuntu 12.04.03 for it run the following" echo echo "sudo apt-get update" echo "sudo apt-get install linux-image-generic-lts-raring linux-headers-generic-lts-raring" echo "sudo reboot" echo echo "sudo sh -c \"wget -qO- https://get.docker.io/gpg | apt-key add -\"" echo "sudo sh -c \"echo deb http://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list\"" echo "sudo apt-get update" echo "sudo apt-get install lxc-docker" exit 1 } set_volumes() { volumes=`cat $config_file | docker run -rm -i -a stdout -a stdin samsaffron/discourse ruby -e \ "require 'yaml'; puts YAML.load(STDIN.readlines.join)['volumes'].map{|v| '-v ' << v['volume']['host'] << ':' << v['volume']['guest'] << ' '}.join"` } [ -z $docker_path ] && { install_docker } [ $# -ne 2 ] && { usage } if [ ! -e $config_file ] then echo "Config file was not found, ensure $config_file exists" exit 1 fi case "$command" in bootstrap) read -r -d '' ruby <