Files
UserbaseService/deploy/redeploy_app.sh
T

29 lines
1.5 KiB
Bash

#!/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 =="