#!/bin/bash # # vars # # config vars setup_volumes=true setup_ports=false # some basic vars project_name="quasseldocker" postgres_image="$project_name/postgres" postgres_container="$project_name-postgres" quassel_image="$project_name/quassel" quassel_container="$project_name-quassel" # postgres data dir postgresdata="`pwd`/postgres/data" quasselconf="`pwd`/quassel/quasselcore.conf" # # prep work # # should we set-up the volumes? if [ "$setup_volumes" = true ]; then postgres_volume="-v $postgresdata:/var/lib/postgresql/" quassel_volume="-v $quasselconf:/var/lib/quassel/quasselcore.conf" fi # should we set-up the port forwarding to the host system? quassel_port="" if [ "$setup_ports" = true ]; then quassel_port="-p 4242:4242" fi # build postgres image buildpostgres="docker build -t $postgres_image postgres" # build postgres container buildquassel="docker build -t $quassel_image quassel" # postgres docker runpostgres="docker run -h $postgres_container --name $postgres_container $postgres_volume -d $postgres_image" # quassel docker runquassel="docker run -h $quassel_container --link=$postgres_container:$postgres_container $quassel_volume $quassel_port --name $quassel_container -d $quassel_image" # kill all killall="docker kill $quassel_container $postgres_container" # remove all rmall="docker rm -v $quassel_container $postgres_container" # info info=" root access to both containers: - docker run --entrypoint /bin/sh -u root -h $postgres_container -t -i --name $postgres_container --rm $postgres_image -c /bin/bash - docker run --entrypoint /bin/sh -u root -h $quassel_container --link=$postgres_container:$postgres_container -t -i $quassel_volume --name $quassel_container --rm $quassel_image -c /bin/bash" # help if [[ "$1" == "--help" ]]; then echo " quasseldocker management script usage: $0 [ --kill | --run | --build | --help ] options: --build - build both (postgres; quassel) containers --help - display this message --kill - only kill and delete both containers --run - only run both containers running $0 without options will kill both containers (postgres, quassel), and then create and run both of them $info " fi # do we want to build stuff? if [[ "$1" == "--build" ]]; then echo " building will run: - $buildpostgres - $buildquassel " echo echo "building the postgres container..." $buildpostgres echo echo "building the quassel container..." $buildquassel echo " all built. $info" fi # do we want to kill all quassel-related dockers? if [[ "$1" == "" || "$1" == "--kill" ]]; then echo " killing quassel-related dockers will run: - $killall - $rmall " $killall $rmall fi # do we want to run stuff? if [[ "$1" == "" || "$1" == "--run" ]]; then echo " running the containers will run: - $runpostgres - $runquassel " echo echo "running the postgres container..." $runpostgres echo echo "running the quassel container..." $runquassel echo " all done, containers running: - $postgres_container (`docker inspect --format '{{ .NetworkSettings.IPAddress }}' $postgres_container`) - $quassel_container (`docker inspect --format '{{ .NetworkSettings.IPAddress }}' $quassel_container`) " fi