#!/bin/sh # 重新部署 userbase-app:拉取新镜像、重建、等待健康,并核对是否真正从 Nacos 拉到了配置 echo "== login ACR ==" echo '59qtJRqlT7' | docker login --username=15121037482 --password-stdin registry.cn-hangzhou.aliyuncs.com cd /opt/docker/userbase echo "== pull userbase-app ==" docker compose -f docker-compose.userbase.yml pull userbase-app echo "== up -d userbase-app ==" docker compose -f docker-compose.userbase.yml up -d userbase-app echo "== wait for health (up to 150s) ==" for i in $(seq 1 30); 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 "== 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 ==" docker logs --tail 150 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|拒绝|超时" | tail -50 || true echo "== done =="