quasseldocker/quassel_docker.sh

108 lines
2.8 KiB
Bash
Executable File

#!/bin/bash
# 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
# 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 -v $postgresdata:/var/lib/postgresql/ -d $postgres_image"
# quassel docker
runquassel="docker run -h $quassel_container --link=$postgres_container:$postgres_container -v $quasselconf:/var/lib/quassel/quasselcore.conf --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"
# 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. remember to prep the postgres environment if needed:
- docker run --entrypoint /bin/sh -u root -t -i -v $postgresdata:/var/lib/postgresql/ --rm $postgres_image -c /root/prep.sh
- docker run --entrypoint /bin/ss -u root -t -i -v $quasselconf:/var/lib/quassel/quasselcore.conf --name $quassel_container --rm $quassel_image -c chown quasselcore:quassel /var/lib/quassel/quasselcore.conf
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 -v $quasselconf:/var/lib/quassel/quasselcore.conf --name $quassel_container --rm $quassel_image -c /bin/bash
"
fi
# do we want to clean stuff up?
if [[ "$1" == "" || "$1" == "--clean-up" ]]; then
echo "
cleaning up
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