Docker 部署
Docker 部署
MLiev IAM 提供多阶段 Docker 构建,生成的镜像包含完整的前端和后端。
构建镜像
docker build -t mliev-iam .构建过程分三个阶段:
- 前端构建(Node.js 22)— 编译管理后台、OIDC 登录页、安装向导
- 后端构建(Go 1.25 Alpine)— 编译 Go 二进制文件(静态链接,CGO 禁用)
- 运行镜像(Alpine)— 最终镜像,仅包含二进制文件和必要的系统库
运行容器
基本运行
docker run -d \
--name mliev-iam \
-p 8080:8080 \
mliev-iam挂载配置和数据
docker run -d \
--name mliev-iam \
-p 8080:8080 \
-v $(pwd)/config.yaml:/app/config/config.yaml \
-v $(pwd)/logs:/app/logs \
-v $(pwd)/data:/app/data \
mliev-iam使用环境变量
docker run -d \
--name mliev-iam \
-p 8080:8080 \
-e JWT_SECRET_KEY=your-secret-key \
mliev-iamDocker Compose 示例
version: '3.8'
services:
mliev-iam:
build: .
ports:
- "8080:8080"
volumes:
- ./config.yaml:/app/config/config.yaml
- ./logs:/app/logs
depends_on:
- mysql
- redis
restart: unless-stopped
mysql:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: mliev_iam
volumes:
- mysql_data:/var/lib/mysql
ports:
- "3306:3306"
redis:
image: redis:7-alpine
ports:
- "6379:6379"
volumes:
mysql_data:健康检查
Docker 镜像内置了健康检查配置:
- 端点:
GET /health/simple - 间隔: 30 秒
- 超时: 10 秒
- 启动等待: 5 秒
- 重试次数: 3 次
# 查看容器健康状态
docker inspect --format='{{.State.Health.Status}}' mliev-iam时区
镜像默认时区为 Asia/Shanghai。如需修改,设置 TZ 环境变量:
docker run -e TZ=UTC ...