#!/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}" GATEWAY_HEALTH_URL="http://${GATEWAY_CONTAINER}:3000/health" 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() { if docker exec "$NGINX_CONTAINER" wget -qO- --timeout=5 "$GATEWAY_HEALTH_URL" 2>/dev/null \ | grep -q '"status"'; then echo "[nginx-gateway-sync] nginx → ${GATEWAY_CONTAINER}:3000/health OK" else echo "[nginx-gateway-sync] предупреждение: nginx пока не достучался до ${GATEWAY_HEALTH_URL}" fi } on_gateway_start() { echo "[nginx-gateway-sync] ${GATEWAY_CONTAINER} перезапущен, ждём Nest (${BOOT_WAIT_SEC}s)..." sleep "$BOOT_WAIT_SEC" reload_nginx sleep 2 verify_gateway } echo "[nginx-gateway-sync] слежение за ${GATEWAY_CONTAINER} (boot wait ${BOOT_WAIT_SEC}s)..." # Первый запуск стека: gateway уже healthy, но nginx мог стартовать раньше — синхронизируем. ( sleep "$BOOT_WAIT_SEC" reload_nginx sleep 2 verify_gateway ) & docker events \ --filter "container=${GATEWAY_CONTAINER}" \ --filter event=start \ --format '{{.Time}}' | while read -r _; do on_gateway_start done