fix: make deploy health check wait for api and avoid noisy curl output
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+18
-8
@@ -287,6 +287,8 @@ compose_up_build() {
|
||||
step "docker compose up -d --build"
|
||||
mkdir -p /root/market_intel_backups 2>/dev/null || true
|
||||
compose up -d --build
|
||||
# 给容器一点启动时间,再进入健康检查
|
||||
sleep 3
|
||||
}
|
||||
|
||||
compose_stop() {
|
||||
@@ -324,17 +326,24 @@ verify_health() {
|
||||
port="$(read_mi_port)"
|
||||
local url="http://127.0.0.1:${port}/health"
|
||||
step "健康检查 ${url}"
|
||||
# 先等 api 容器起来,避免 rebuild 窗口误报
|
||||
local i
|
||||
for i in $(seq 1 30); do
|
||||
if curl -fsS "${url}" >/dev/null 2>&1; then
|
||||
log "health OK"
|
||||
curl -fsS "${url}" || true
|
||||
echo ""
|
||||
for i in $(seq 1 60); do
|
||||
if compose ps --status running 2>/dev/null | grep -qE 'mi_api|api'; then
|
||||
break
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
for i in $(seq 1 45); do
|
||||
# -sS 静默;丢弃正文,避免 JSON 与后续菜单输出粘连
|
||||
if curl -fsS --connect-timeout 2 --max-time 5 "${url}" >/dev/null 2>&1; then
|
||||
log "health OK (${url})"
|
||||
return 0
|
||||
fi
|
||||
sleep 2
|
||||
done
|
||||
log "警告: health 暂未就绪,请检查: docker compose -f ${REPO_ROOT}/docker-compose.yml logs api --tail 80"
|
||||
log "也可手动验证: curl -fsS ${url}"
|
||||
return 1
|
||||
}
|
||||
|
||||
@@ -351,14 +360,15 @@ print_post_install_guide() {
|
||||
local ip port
|
||||
ip="$(detect_server_ip)"
|
||||
port="$(read_mi_port)"
|
||||
echo ""
|
||||
# 清掉可能残留的 \r,避免和 docker/curl 进度条粘行
|
||||
printf '\n'
|
||||
echo "══════════════════════════════════════"
|
||||
echo " 比特骆驼行情采集分析 部署完成"
|
||||
echo " 目录: ${INSTALL_ROOT}"
|
||||
echo " 本机: http://${ip}:${port}/health"
|
||||
echo " 健康检查: http://${ip}:${port}/health"
|
||||
echo " 看板: http://${ip}:${port}/"
|
||||
echo " 管理: bash ${INSTALL_ROOT}/deploy/manage.sh"
|
||||
echo " 配置: ${INSTALL_ROOT}/.env"
|
||||
echo "══════════════════════════════════════"
|
||||
echo ""
|
||||
printf '\n'
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user