view docker/do_all.sh @ 103:e69883c1ec30

docker (libervia_cont): added a "status" command: - if libervia container is not running, it exits with error code 1 - if libervia container is running but no server is launched, it exits with error code 2 - if libervia container is running and server is launcher, it exits with error code 0 (success) server detection is done by doing a simple grep on logs, that's not perfectly reliable (ports can be changed in configuration, even if that doesn't really make sense in Docker context) but should be good enough for this purpose.
author Goffi <goffi@goffi.org>
date Sat, 27 Feb 2016 00:45:40 +0100
parents bcba1966e6db
children
line wrap: on
line source

#!/bin/sh

# This script build all container in the right order
# Copyright (C) 2014 Jérôme Poisson (goffi@goffi.org)

# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU Affero General Public License for more details.

# You should have received a copy of the GNU Affero General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.

DIRS="base media sat_nomedia sat jp primitivus sat_pubsub prosody salut libervia data"
ACCOUNT="salutatoi"

ori_dir=$(pwd)

if [ $# -eq 0 ]; then
	cmd="build"
else
	case $1 in
		build)
			cmd="build"
			BEFORE="-t"
			AFTER="."
			;;
		push)
			cmd="push"
			TAG=":latest"
			;;
		pull)
			cmd="pull"
			TAG=":latest"
			;;
		*)
			printf "Invalid command ($1)\n"
			exit 1
			;;
	esac
	
	shift
fi

for cont_dir in $DIRS; do
	cont_name=$(grep -o "Salut à Toi/[^ ]\+" $cont_dir/Dockerfile | sed "s&Salut à Toi/&&" | tr '[:upper:]' '[:lower:]')
	cd "$cont_dir"
	printf "\n==> Doing a $cmd for $ACCOUNT/$cont_name in $cont_dir with extra [$@] <===\n\n"
	docker $cmd $BEFORE "$ACCOUNT/${cont_name}${TAG}" "$@" $AFTER
	err=$?
	cd "$ori_dir"
	if [ $err -ne 0 ]; then
		printf "$cmd of $cont_name failed (exit code $err), exiting\n"
		exit 1
	fi
done