feat: 新增 Docker Compose 一键部署(MySQL + 后端 + 前端)

- 新增 docker-compose.yml,按健康检查顺序启动 MySQL 8、Go 后端与 Nginx 前端
- 新增 server/web 多阶段 Dockerfile、nginx 反向代理配置与 .dockerignore
- 后端支持 KENAITO_* 环境变量覆盖配置,新增 /health 健康检查接口
- 补充中英文 README 与 Docker 部署文档、.env.example 环境变量模板
This commit is contained in:
2026-08-27 21:17:10 +08:00
parent 005bd2490c
commit d6a052e0a4
14 changed files with 393 additions and 17 deletions
+46 -1
View File
@@ -1,9 +1,54 @@
# Kenaito Config Center 客户端 Docker 部署指南
本文档说明如何使用 Dockerfile 构建和测试各语言客户端 demo。
本文档说明如何使用 Dockerfile 构建和测试各语言客户端 demo,以及如何使用 Docker Compose 一键部署管理端。
所有命令均在项目根目录执行。
## 服务端一键部署(Docker Compose)
```bash
# 可选:按需修改端口、数据库密码和 JWT 密钥
cp .env.example .env
docker compose up -d --build
```
Compose 会启动三个服务:
| 服务 | 说明 | 默认端口 |
| --- | --- | --- |
| mysql | MySQL 8.0,数据持久化到 `mysql-data` 卷 | 仅容器网络 |
| server | Go 后端,首次启动自动建表并初始化管理员 | 8080 |
| web | Nginx 托管的 Vue 前端,并反向代理 `/api`、`/admin`、`/user` | 3000 |
启动后访问 http://localhost:3000 ,默认管理员 `admin` / `admin123`。
常用命令:
```bash
docker compose ps # 查看服务与健康状态
docker compose logs -f server
docker compose down # 停止服务,保留 MySQL 数据
docker compose down -v # 停止服务并删除 MySQL 数据卷
```
环境变量说明(写入 `.env` 即可生效):
| 变量 | 默认值 | 说明 |
| --- | --- | --- |
| WEB_PORT | 3000 | 前端对外端口 |
| SERVER_PORT | 8080 | 后端对外端口 |
| MYSQL_DATABASE | kenaito_conf | 数据库名 |
| MYSQL_USER / MYSQL_PASSWORD | kenaito / kenaito123 | 后端使用的数据库账号 |
| MYSQL_ROOT_PASSWORD | root123456 | MySQL root 密码 |
| JWT_SECRET | kenaito-conf-docker-secret-change-me | JWT 密钥,生产环境必须修改 |
| JWT_EXPIRE_HOURS | 24 | JWT 有效期(小时) |
| TZ | Asia/Shanghai | 容器时区 |
后端配置文件为 `server/application-docker.properties`,以下 `KENAITO_*` 环境变量优先级更高:`KENAITO_ACTIVE`、`KENAITO_SERVER_PORT`、`KENAITO_DB_HOST`、`KENAITO_DB_PORT`、`KENAITO_DB_NAME`、`KENAITO_DB_USER`、`KENAITO_DB_PASSWORD`、`KENAITO_JWT_SECRET`、`KENAITO_JWT_EXPIRE_HOURS`。
后端健康检查接口:`GET /health`,数据库不可用时返回 503。
## Go 客户端
```bash