| #!/bin/sh | |
| WAIT_TIME=60 | |
| NUM_SERVICES_WITH_HEALTH=3 | |
| while getopts "w:s:n:" o; do | |
| case "${o}" in | |
| w) | |
| WAIT_TIME=${OPTARG} | |
| ;; | |
| s) | |
| STACK_NAME=${OPTARG} | |
| ;; | |
| n) | |
| NUM_SERVICES_WITH_HEALTH=${OPTARG} | |
| ;; | |
| esac | |
| done | |
| time=0 | |
| step=1 | |
| while [ $time -le "$WAIT_TIME" ]; do | |
| if [ "$(docker ps | grep " ${STACK_NAME}_" | grep -i healthy | wc -l)" -ge "$NUM_SERVICES_WITH_HEALTH" ]; then | |
| exit 0 | |
| fi | |
| sleep $step | |
| time=$((time+step)) | |
| done | |
| echo "Not all Docker services are healthy" | |
| docker ps | grep " ${STACK_NAME}_" | |
| exit 1 |