修复健康检查
This commit is contained in:
+25
-7
@@ -69,7 +69,7 @@ show_help() {
|
||||
|
||||
环境变量:
|
||||
PROD_HEALTH_URL=https://你的域名/api/health
|
||||
部署后健康检查地址,默认使用 CADDY_DOMAIN
|
||||
部署后公网健康检查地址;设置后使用外部 curl 检查
|
||||
PROD_PUBLIC_URL=https://你的域名
|
||||
输出给用户看的访问地址
|
||||
PROD_READY_TIMEOUT=120
|
||||
@@ -591,18 +591,36 @@ run_migrations() {
|
||||
|
||||
wait_http_ready() {
|
||||
local attempt
|
||||
local url
|
||||
url="$(health_url)"
|
||||
log "等待接口健康检查通过..."
|
||||
local url="${HEALTH_URL}"
|
||||
|
||||
if [[ -n "${url}" ]]; then
|
||||
log "等待公网接口健康检查通过..."
|
||||
for ((attempt = 1; attempt <= READY_TIMEOUT; attempt++)); do
|
||||
if curl -fsS --max-time 5 "${url}" >/dev/null 2>&1; then
|
||||
log_success "公网健康检查通过:${url}"
|
||||
return 0
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
|
||||
log_error "公网健康检查超时:${url}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
url="http://127.0.0.1:8080/api/health"
|
||||
log "等待后端容器内健康检查通过..."
|
||||
for ((attempt = 1; attempt <= READY_TIMEOUT; attempt++)); do
|
||||
if curl -fsS --max-time 5 "${url}" >/dev/null 2>&1; then
|
||||
log_success "健康检查通过:${url}"
|
||||
if compose exec -T backend wget -q -O /dev/null -T 5 "${url}" >/dev/null 2>&1; then
|
||||
log_success "容器内健康检查通过:${url}"
|
||||
return 0
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
|
||||
log_error "健康检查超时:${url}"
|
||||
log_error "后端容器内健康检查超时:${url}"
|
||||
log_warn "最近 backend 日志:"
|
||||
compose logs --tail=120 backend || true
|
||||
log_error "可继续执行:$(compose_user_cmd) logs backend"
|
||||
exit 1
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user