29 lines
1.5 KiB
Bash
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 =="
|