mirror of
https://github.com/NginxProxyManager/nginx-proxy-manager.git
synced 2025-04-19 09:02:14 +03:00
41 lines
947 B
Bash
Executable File
41 lines
947 B
Bash
Executable File
#!/bin/bash
|
||
|
||
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||
. "$DIR/.common.sh"
|
||
|
||
if [ "$1" == "" ]; then
|
||
echo "Waits for a docker container to be healthy."
|
||
echo " Usage: $0 docker-container 30"
|
||
echo "or use the third parameter to use the docker healthcheck instead of the internal one."
|
||
echo " Usage: $0 docker-container 30 true"
|
||
exit 1
|
||
fi
|
||
|
||
SERVICE=$1
|
||
LIMIT=${2:-90}
|
||
USE_DOCKER_HEALTHCHECK=${3:-false}
|
||
|
||
echo -e "${BLUE}❯ ${CYAN}Waiting for healthy: ${YELLOW}${SERVICE}${RESET}"
|
||
|
||
is_up() {
|
||
if [ "$USE_DOCKER_HEALTHCHECK" == "true" ]; then
|
||
docker inspect --format='{{.State.Health.Status}}' "$SERVICE" | grep -qi "healthy"
|
||
else
|
||
docker exec "$SERVICE" /bin/healthcheck.sh
|
||
fi
|
||
}
|
||
|
||
i=0
|
||
while ! is_up; do
|
||
i=$((i + 1))
|
||
if [ "$i" == "$LIMIT" ]; then
|
||
echo -e "${BLUE}❯ ${RED}Timed out waiting for healthy${RESET}"
|
||
docker logs --tail 50 "$SERVICE"
|
||
exit 1
|
||
fi
|
||
sleep 1
|
||
done
|
||
|
||
echo ""
|
||
echo -e "${BLUE}❯ ${GREEN}Healthy!${RESET}"
|