#!/bin/bash containers=( webmail imap smtp antispam admin redis antivirus webdav # fetchmail front ) # Time to sleep in minutes after starting the containers WAIT=1 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 -e "\nSleeping for ${WAIT} minutes" # Clean terminal distortion from docker-compose in travis travis_wait sleep ${WAIT}m || sleep ${WAIT}m #Fallback sleep for local run container_logs containers_check || die 1 clean done