环境变量

环境变量

MLiev IAM 支持通过环境变量覆盖配置文件中的设置。环境变量优先级高于 config.yaml

覆盖规则

系统使用 Viper 配置框架,支持以下优先级(从高到低):

  1. 环境变量
  2. config.yaml 配置文件
  3. 代码内置默认值

常用环境变量

运行模式

环境变量 说明 示例
mode 运行模式 debug / release / test
# debug 模式启动(静态资源从磁盘加载)
mode=debug ./mliev-iam

JWT 配置

环境变量 说明 示例
JWT_SECRET_KEY JWT 签名密钥 随机字符串
JWT_ISSUER JWT 签发者 mliev-iam
JWT_ACCESS_TOKEN_TTL 访问令牌有效期 24h
JWT_REFRESH_TOKEN_TTL 刷新令牌有效期 168h

数据库配置

数据库配置可通过环境变量覆盖,便于容器化部署:

环境变量 对应配置项 说明
DATABASE_DRIVER database.driver 数据库驱动
DATABASE_HOST database.host 数据库主机
DATABASE_PORT database.port 数据库端口
DATABASE_USERNAME database.username 数据库用户名
DATABASE_PASSWORD database.password 数据库密码
DATABASE_NAME database.database 数据库名称

Redis 配置

环境变量 对应配置项 说明
REDIS_HOST redis.host Redis 主机
REDIS_PORT redis.port Redis 端口
REDIS_PASSWORD redis.password Redis 密码

Docker 环境变量示例

docker run -d \
  -p 8080:8080 \
  -e JWT_SECRET_KEY="your-strong-secret-key" \
  -e DATABASE_DRIVER=mysql \
  -e DATABASE_HOST=db.internal \
  -e DATABASE_PORT=3306 \
  -e DATABASE_USERNAME=mliev \
  -e DATABASE_PASSWORD=secret \
  -e DATABASE_NAME=mliev_iam \
  -e REDIS_HOST=redis.internal \
  -e REDIS_PASSWORD=redis-secret \
  mliev-iam

最佳实践

  • 敏感信息(密码、密钥)建议使用环境变量而非配置文件
  • 容器化部署优先使用环境变量,减少配置文件挂载
  • 开发环境使用 mode=debug 环境变量启动调试模式