优化一键部署脚本, 增加cloudtentacles
This commit is contained in:
+26
-4
@@ -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}"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user