#!/bin/bash containers=( webmail imap smtp antispam admin redis antivirus webdav # fetchmail front ) # Default to mailu for DOCKER_ORG if [ -z "$DOCKER_ORG" ]; then export DOCKER_ORG="mailu" fi # Verbose sleep, to prevent Travis to cancel the build # First argument is desired sleep time in minutes v_sleep() { COUNT=$1 until [ $COUNT -eq 0 ]; do echo "Sleep for $COUNT more minutes" sleep 1m ((COUNT--)) done; } containers_check() { status=0 for container in "${containers[@]}"; do name="${DOCKER_ORG}_${container}_1" echo "Checking $name" docker inspect "$name" | grep '"Status": "running"' || status=1 done docker ps -a return $status } container_logs() { for container in "${containers[@]}"; do name="${DOCKER_ORG}_${container}_1" echo "Showing logs for $name" docker container logs "$name" done } clean() { docker-compose -f tests/compose/run.yml -p $DOCKER_ORG down || exit 1 rm -fv .env } # Cleanup before callig exit die() { clean exit $1 } for file in tests/compose/*.env ; do cp $file .env docker-compose -f tests/compose/run.yml -p $DOCKER_ORG up -d echo "\n" # Clean terminal distortion from docker-compose in travis v_sleep 1 container_logs containers_check || die 1 clean done