环境变量
MLiev IAM 支持通过环境变量覆盖配置文件中的设置。环境变量优先级高于 config.yaml。
覆盖规则
系统使用 Viper 配置框架,支持以下优先级(从高到低):
- 环境变量
- config.yaml 配置文件
- 代码内置默认值
常用环境变量
运行模式
| 环境变量 |
说明 |
示例 |
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 环境变量启动调试模式