34 lines
1.1 KiB
Bash
34 lines
1.1 KiB
Bash
#!/bin/sh
|
|
set -eu
|
|
|
|
NGINX_CONTAINER="${NGINX_CONTAINER:-lendry-id-nginx}"
|
|
GATEWAY_CONTAINER="${GATEWAY_CONTAINER:-lendry-id-api-gateway}"
|
|
BOOT_WAIT_SEC="${BOOT_WAIT_SEC:-55}"
|
|
|
|
reload_nginx() {
|
|
if docker exec "$NGINX_CONTAINER" nginx -s reload 2>/dev/null; then
|
|
echo "[nginx-gateway-sync] nginx reload OK"
|
|
else
|
|
echo "[nginx-gateway-sync] nginx reload failed — пробуем restart"
|
|
docker restart "$NGINX_CONTAINER" >/dev/null 2>&1 || true
|
|
fi
|
|
}
|
|
|
|
verify_gateway() {
|
|
docker exec "$NGINX_CONTAINER" wget -qO- --timeout=5 "http://${GATEWAY_CONTAINER}:3000/health" 2>/dev/null \
|
|
|| echo "[nginx-gateway-sync] предупреждение: nginx пока не достучался до ${GATEWAY_CONTAINER}:3000/health"
|
|
}
|
|
|
|
echo "[nginx-gateway-sync] слежение за ${GATEWAY_CONTAINER} (boot wait ${BOOT_WAIT_SEC}s)..."
|
|
|
|
docker events \
|
|
--filter "container=${GATEWAY_CONTAINER}" \
|
|
--filter event=start \
|
|
--format '{{.Time}}' | while read -r _; do
|
|
echo "[nginx-gateway-sync] ${GATEWAY_CONTAINER} перезапущен, ждём Nest..."
|
|
sleep "$BOOT_WAIT_SEC"
|
|
reload_nginx
|
|
sleep 2
|
|
verify_gateway
|
|
done
|