用途:解决 Zeabur 上服务先于依赖(数据库/Redis)就绪而启动导致的连接失败问题。典型症状包括 Connection refused :5432、connection to server at "X" failed、OperationalError: connection failed。
原因:dependencies 只保证容器启动顺序,并不保证依赖服务已开始接受连接。
推荐修复:为数据库/Redis 服务添加 healthCheck,让 Zeabur 等到端口可接受连接后再启动依赖服务,无需修改应用命令。在模板 YAML 中为 postgresql 添加 healthCheck(type: TCP,port 引用端口 ID database,端口 5432),Redis 同理(端口 6379)。
备选修复:若无法修改模板,可在应用命令中加入等待逻辑,command 必须写在 source 内,例如使用 /bin/sh -c 配合直到 nc -z postgres 5432 成功的循环后再启动进程。
快速修复:若数据库此时已就绪,可直接重启失败服务:npx zeabur@latest service restart --id <service-id> -y -i=false。
用法说明:始终使用 npx zeabur@latest 调用 Zeabur CLI,不要直接使用 zeabur 或其他安装方式;若 npx 不可用需先安装 Node.js。若问题属于数据库迁移等待循环而非启动顺序,应改用 zeabur-migration 技能。