anxin-ruoyi/docker/configs/startup.sh
2026-01-05 01:46:20 +08:00

68 lines
1.8 KiB
Bash

#!/bin/bash
# 后端应用启动脚本
# 负责验证环境配置并启动Spring Boot应用
set -e
# 导入环境配置脚本
source /app/scripts/backend-env.sh
echo "=== 安信数字信贷系统后端启动 ==="
echo "启动时间: $(date)"
echo "时区: $TZ"
# 验证必需的环境变量
echo "正在验证环境配置..."
if ! validate_required_env; then
echo "环境配置验证失败,退出启动"
exit 1
fi
# 显示当前配置
show_config
# 等待数据库服务可用
echo "正在等待数据库服务可用..."
max_attempts=30
attempt=1
while [ $attempt -le $max_attempts ]; do
if nc -z "$DB_HOST" "$DB_PORT" 2>/dev/null; then
echo "数据库服务已可用 ($DB_HOST:$DB_PORT)"
break
fi
echo "等待数据库服务... (尝试 $attempt/$max_attempts)"
sleep 2
attempt=$((attempt + 1))
done
if [ $attempt -gt $max_attempts ]; then
echo "错误: 无法连接到数据库服务 $DB_HOST:$DB_PORT"
exit 1
fi
# 创建必要的目录
mkdir -p "$LOG_PATH" "$UPLOAD_PATH"
# 设置Spring Boot配置文件路径
export SPRING_CONFIG_LOCATION="classpath:/application.yml,file:/app/config/application-docker.yml"
# 构建完整的Java启动命令
JAVA_CMD="java $JAVA_OPTS \
-Dserver.port=$SERVER_PORT \
-Dspring.profiles.active=$SPRING_PROFILES_ACTIVE \
-Dspring.config.location=$SPRING_CONFIG_LOCATION \
-Dlogging.level.com.ruoyi=$LOG_LEVEL \
-Dlogging.file.name=$LOG_PATH/anxin.log \
-Dspring.datasource.url=jdbc:mysql://$DB_HOST:$DB_PORT/$DB_NAME?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true \
-Dspring.datasource.username=$DB_USER \
-Dspring.datasource.password=$DB_PASSWORD \
-jar app.jar"
echo "启动命令: $JAVA_CMD"
echo "=== 应用启动中... ==="
# 启动应用
exec $JAVA_CMD