2020-02-19 04:55:06 +00:00
|
|
|
|
#!/bin/bash
|
|
|
|
|
|
2020-05-21 06:11:19 +00:00
|
|
|
|
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
|
|
|
. "$DIR/.common.sh"
|
2020-02-19 04:55:06 +00:00
|
|
|
|
|
|
|
|
|
if [ "$1" == "" ]; then
|
|
|
|
|
echo "Waits for a docker container to be healthy."
|
2022-05-11 22:47:31 +00:00
|
|
|
|
echo "Usage: $0 docker-container 30"
|
2020-02-19 04:55:06 +00:00
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
SERVICE=$1
|
|
|
|
|
LIMIT=${2:-90}
|
|
|
|
|
|
|
|
|
|
echo -e "${BLUE}❯ ${CYAN}Waiting for healthy: ${YELLOW}${SERVICE}${RESET}"
|
|
|
|
|
|
2022-05-11 22:47:31 +00:00
|
|
|
|
is_up() {
|
|
|
|
|
docker exec "$SERVICE" /bin/healthcheck.sh
|
|
|
|
|
}
|
2020-02-19 04:55:06 +00:00
|
|
|
|
|
2022-05-11 22:47:31 +00:00
|
|
|
|
i=0
|
|
|
|
|
while ! is_up; do
|
|
|
|
|
i=$((i + 1))
|
|
|
|
|
if [ "$i" == "$LIMIT" ]; then
|
2020-02-19 04:55:06 +00:00
|
|
|
|
echo -e "${BLUE}❯ ${RED}Timed out waiting for healthy${RESET}"
|
2022-05-11 22:47:31 +00:00
|
|
|
|
docker logs --tail 50 "$SERVICE"
|
2020-02-19 04:55:06 +00:00
|
|
|
|
exit 1
|
|
|
|
|
fi
|
2022-05-11 22:47:31 +00:00
|
|
|
|
sleep 1
|
2020-02-19 04:55:06 +00:00
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
echo ""
|
|
|
|
|
echo -e "${BLUE}❯ ${GREEN}Healthy!${RESET}"
|