#!/bin/bash set -e echo "=========================================" echo "君鸿卡管系统 API 服务启动中..." echo "=========================================" # 检查必要的环境变量 if [ -z "$DB_HOST" ]; then echo "错误: DB_HOST 环境变量未设置" exit 1 fi # 构建数据库连接 URL DB_URL="postgresql://${DB_USER}:${DB_PASSWORD}@${DB_HOST}:${DB_PORT}/${DB_NAME}?sslmode=${DB_SSLMODE}" echo "检查数据库连接..." # 等待数据库就绪(最多等待 30 秒) for i in {1..30}; do if migrate -path /app/migrations -database "$DB_URL" version > /dev/null 2>&1; then echo "数据库连接成功" break fi echo "等待数据库就绪... ($i/30)" sleep 1 done # 执行数据库迁移 echo "执行数据库迁移..." if migrate -path /app/migrations -database "$DB_URL" up; then echo "数据库迁移完成" else echo "警告: 数据库迁移失败或无新迁移" fi # 启动 API 服务 echo "启动 API 服务..." echo "=========================================" exec /app/api