#!/usr/bin/env bash # test-container.sh # Usage: ./test-container.sh container_name container="$1" test_name="testing-${container}" compose_script="/compose/services-up.sh" # Run container in detached mode $compose_script --profile all run -d --name "$test_name" --build "$container" >/dev/null 2>&1 # Poll health status timeout=60 # seconds interval=2 # seconds elapsed=0 result=1 # default to failure while [ $elapsed -lt $timeout ]; do status=$(docker inspect --format='{{.State.Health.Status}}' "$test_name" 2>/dev/null) if [ "$status" == "healthy" ]; then # echo "healthy" result=0 # success break elif [ "$status" == "unhealthy" ]; then # echo "unhealthy" result=1 # failure break fi sleep $interval elapsed=$((elapsed + interval)) done # Timeout case if [ $elapsed -ge $timeout ]; then # echo "timeout" result=1 fi # Cleanup docker rm "$test_name" --force >/dev/null 2>&1 #echo "Exiting with $result" >&2 echo $result exit $result