优化一键部署脚本, 增加cloudtentacles

This commit is contained in:
yml2213
2026-05-26 17:24:27 +08:00
parent b2d7ed18a3
commit 3b0319dfe3
3 changed files with 43 additions and 36 deletions
+26 -4
View File
@@ -88,7 +88,12 @@ deploy_stack() {
docker compose pull --ignore-buildable
log "构建并启动服务"
docker compose up -d --build
if docker compose up -d --build; then
return
fi
print_diagnostics
fail "docker compose 启动失败,请根据上面的日志排查。"
}
wait_for_health() {
@@ -102,12 +107,29 @@ wait_for_health() {
sleep 2
done
docker compose ps
warn "健康检查暂未通过,最近后端日志如下:"
docker compose logs --tail=80 backend
print_diagnostics
fail "部署已启动但健康检查未通过,请根据日志排查。"
}
print_diagnostics() {
warn "当前容器状态:"
docker compose ps || true
warn "后端最近日志:"
local backend_logs
backend_logs="$(docker compose logs --tail=120 backend 2>&1 || true)"
printf '%s\n' "${backend_logs}"
if printf '%s\n' "${backend_logs}" | grep -q 'password authentication failed for user "postgres"'; then
warn "检测到 PostgreSQL 密码认证失败。通常是 postgres_data 已用旧密码初始化,而 .env 改成了新密码。"
warn "无生产数据时可执行:docker compose down -v && bash deploy/ubuntu-deploy.sh"
warn "需要保留数据时,请进入 postgres 容器用当前 .env 的 POSTGRES_PASSWORD 修改数据库用户密码。"
fi
warn "后端 ready 接口:"
docker compose exec -T backend sh -lc 'curl -fsS http://127.0.0.1:3000/health/ready || true' || true
}
main() {
cd "${PROJECT_ROOT}"