162 lines
4.6 KiB
Bash
Executable File
162 lines
4.6 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# 后端环境变量配置脚本
|
|
# 用于设置不同环境下的后端应用配置
|
|
|
|
set -e
|
|
|
|
# 默认环境变量配置
|
|
export DB_HOST=${DB_HOST:-"anxin-mysql"}
|
|
export DB_PORT=${DB_PORT:-"3306"}
|
|
export DB_NAME=${DB_NAME:-"anxin_prod"}
|
|
export DB_USER=${DB_USER:-"anxin_prod"}
|
|
export DB_PASSWORD=${DB_PASSWORD:-"prod_password"}
|
|
|
|
# 应用端口和网络配置
|
|
export SERVER_PORT=${SERVER_PORT:-"8080"}
|
|
export SPRING_PROFILES_ACTIVE=${SPRING_PROFILES_ACTIVE:-"docker"}
|
|
|
|
# 日志配置
|
|
export LOG_LEVEL=${LOG_LEVEL:-"INFO"}
|
|
export LOG_PATH=${LOG_PATH:-"/app/logs"}
|
|
export LOG_MAX_SIZE=${LOG_MAX_SIZE:-"100MB"}
|
|
export LOG_MAX_FILES=${LOG_MAX_FILES:-"10"}
|
|
|
|
# 监控配置
|
|
export MANAGEMENT_ENDPOINTS_WEB_EXPOSURE_INCLUDE=${MANAGEMENT_ENDPOINTS_WEB_EXPOSURE_INCLUDE:-"health,info,metrics"}
|
|
|
|
# JVM配置
|
|
export JAVA_OPTS=${JAVA_OPTS:-"-Xms512m -Xmx1024m -Djava.security.egd=file:/dev/./urandom"}
|
|
|
|
# 安全配置
|
|
export JWT_SECRET=${JWT_SECRET:-"abcdefghijklmnopqrstuvwxyz"}
|
|
export JWT_EXPIRE_TIME=${JWT_EXPIRE_TIME:-"30"}
|
|
|
|
# Druid监控配置
|
|
export DRUID_USERNAME=${DRUID_USERNAME:-"admin"}
|
|
export DRUID_PASSWORD=${DRUID_PASSWORD:-"admin123"}
|
|
|
|
# 文件上传路径
|
|
export UPLOAD_PATH=${UPLOAD_PATH:-"/app/uploadPath"}
|
|
|
|
# Swagger配置
|
|
export SWAGGER_ENABLED=${SWAGGER_ENABLED:-"false"}
|
|
|
|
# 时区配置
|
|
export TZ=${TZ:-"Asia/Shanghai"}
|
|
|
|
# 函数:验证必需的环境变量
|
|
validate_required_env() {
|
|
local required_vars=("DB_HOST" "DB_PORT" "DB_NAME" "DB_USER" "DB_PASSWORD")
|
|
local missing_vars=()
|
|
|
|
for var in "${required_vars[@]}"; do
|
|
if [[ -z "${!var}" ]]; then
|
|
missing_vars+=("$var")
|
|
fi
|
|
done
|
|
|
|
if [[ ${#missing_vars[@]} -gt 0 ]]; then
|
|
echo "错误: 以下必需的环境变量未设置:"
|
|
printf '%s\n' "${missing_vars[@]}"
|
|
return 1
|
|
fi
|
|
|
|
echo "所有必需的环境变量已设置"
|
|
return 0
|
|
}
|
|
|
|
# 函数:显示当前环境配置
|
|
show_config() {
|
|
echo "=== 后端应用环境配置 ==="
|
|
echo "数据库配置:"
|
|
echo " DB_HOST: $DB_HOST"
|
|
echo " DB_PORT: $DB_PORT"
|
|
echo " DB_NAME: $DB_NAME"
|
|
echo " DB_USER: $DB_USER"
|
|
echo " DB_PASSWORD: [HIDDEN]"
|
|
echo ""
|
|
echo "应用配置:"
|
|
echo " SERVER_PORT: $SERVER_PORT"
|
|
echo " SPRING_PROFILES_ACTIVE: $SPRING_PROFILES_ACTIVE"
|
|
echo ""
|
|
echo "日志配置:"
|
|
echo " LOG_LEVEL: $LOG_LEVEL"
|
|
echo " LOG_PATH: $LOG_PATH"
|
|
echo " LOG_MAX_SIZE: $LOG_MAX_SIZE"
|
|
echo " LOG_MAX_FILES: $LOG_MAX_FILES"
|
|
echo ""
|
|
echo "JVM配置:"
|
|
echo " JAVA_OPTS: $JAVA_OPTS"
|
|
echo ""
|
|
echo "其他配置:"
|
|
echo " TZ: $TZ"
|
|
echo " UPLOAD_PATH: $UPLOAD_PATH"
|
|
echo " SWAGGER_ENABLED: $SWAGGER_ENABLED"
|
|
echo "=========================="
|
|
}
|
|
|
|
# 函数:根据环境类型加载配置
|
|
load_environment() {
|
|
local env_type=${1:-"development"}
|
|
|
|
case $env_type in
|
|
"production")
|
|
export LOG_LEVEL="WARN"
|
|
export SWAGGER_ENABLED="false"
|
|
export JAVA_OPTS="-Xms1024m -Xmx2048m -Djava.security.egd=file:/dev/./urandom -XX:+UseG1GC"
|
|
echo "已加载生产环境配置"
|
|
;;
|
|
"staging")
|
|
export LOG_LEVEL="INFO"
|
|
export SWAGGER_ENABLED="true"
|
|
export JAVA_OPTS="-Xms512m -Xmx1024m -Djava.security.egd=file:/dev/./urandom"
|
|
echo "已加载预发布环境配置"
|
|
;;
|
|
"development"|"dev")
|
|
export LOG_LEVEL="DEBUG"
|
|
export SWAGGER_ENABLED="true"
|
|
export JAVA_OPTS="-Xms256m -Xmx512m -Djava.security.egd=file:/dev/./urandom"
|
|
echo "已加载开发环境配置"
|
|
;;
|
|
*)
|
|
echo "警告: 未知的环境类型 '$env_type',使用默认配置"
|
|
;;
|
|
esac
|
|
}
|
|
|
|
# 自动加载当前环境配置
|
|
if [[ -n "$SPRING_PROFILES_ACTIVE" ]]; then
|
|
load_environment "$SPRING_PROFILES_ACTIVE"
|
|
fi
|
|
|
|
# 主函数
|
|
main() {
|
|
local command=${1:-"show"}
|
|
|
|
case $command in
|
|
"validate")
|
|
validate_required_env
|
|
;;
|
|
"show")
|
|
show_config
|
|
;;
|
|
"load")
|
|
local env_type=${2:-"development"}
|
|
load_environment "$env_type"
|
|
show_config
|
|
;;
|
|
*)
|
|
echo "用法: $0 {validate|show|load [environment]}"
|
|
echo " validate - 验证必需的环境变量"
|
|
echo " show - 显示当前环境配置"
|
|
echo " load - 加载指定环境配置 (development|staging|production)"
|
|
exit 1
|
|
;;
|
|
esac
|
|
}
|
|
|
|
# 如果脚本被直接执行,运行主函数
|
|
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
|
|
main "$@"
|
|
fi |