set -e echo "== wait for health (up to 180s) ==" for i in $(seq 1 36); do st=$(docker inspect -f '{{.State.Health.Status}}' userbase-app 2>/dev/null || echo unknown) echo " [$i] health=$st" if [ "$st" = "healthy" ]; then break; fi sleep 5 done echo "== container status ==" docker ps --filter name=userbase --format "table {{.Names}}\t{{.Status}}" echo "== nacos reachability (host) ==" curl -s -m 5 -o /dev/null -w "host nacos http=%{http_code}\n" "http://nacos.yunhaixingtong.com:8848/nacos/v1/cs/configs?dataId=userbase.yaml&group=USERBASE&tenant=" || echo "host cannot reach nacos" echo "== nacos reachability (container) ==" docker exec userbase-app sh -c "curl -s -m 5 -o /dev/null -w 'container nacos http=%{http_code}\n' 'http://nacos.yunhaixingtong.com:8848/nacos/v1/cs/configs?dataId=userbase.yaml&group=USERBASE&tenant='" || echo "container cannot reach nacos" echo "== app logs: nacos / config / errors (tail) ==" docker logs --tail 200 userbase-app 2>&1 | grep -iE "Loading nacos data|userbase.yaml|locate Nacos|NacosConfig|get config from nacos|ERROR|Exception|connect.*refused|UnknownHost|403|401|拒绝|超时|Started " | tail -40 || true echo "== done =="