add: env example

This commit is contained in:
2026-09-21 12:57:02 +08:00
parent 4fad31e438
commit 4718b2ace7
4 changed files with 38 additions and 3 deletions

29
.env.example Normal file
View File

@@ -0,0 +1,29 @@
# =====================================================================
# 实验室预约与资源管理平台 - Docker Compose 环境变量示例
#
# 使用方式:
# cp .env.example .env # 复制后按需修改,docker compose 会自动读取 .env
# docker compose up -d --build
#
# 注意:.env 已在 .gitignore 中忽略,请勿把真实密码/密钥提交到仓库。
# =====================================================================
# ---------- 数据库(MariaDB) ----------
# 首次创建数据卷时生效;修改后如需重建,先执行 docker compose down -v
DB_NAME=lab
DB_USER=lab
DB_PASSWORD=lab123456
DB_ROOT_PASSWORD=root123456
# ---------- 后端 ----------
# JWT 签名密钥,长度必须 >= 32 字节;生产环境请替换为随机值
# 生成示例:openssl rand -base64 48
LAB_JWT_SECRET=lab-reservation-docker-secret-key-change-me-2026
# JVM 参数(容器内存较小可下调 -Xmx)
JAVA_OPTS=-Xms256m -Xmx512m
# ---------- 端口映射(宿主机端口) ----------
# 前端 Nginx 端口,若本机 80 被占用可改为 8088
WEB_PORT=80
# 后端直连端口(调试用,前端经 Nginx 代理访问后端)
BACKEND_PORT=8080

4
.gitignore vendored
View File

@@ -38,3 +38,7 @@ frontend/.vite/
### H2 本地数据库文件 ###
data/
### 本地环境变量(保留示例文件) ###
.env
!.env.example

View File

@@ -46,6 +46,7 @@ pnpm build # 生产构建(vue-tsc 类型检查 + vite build)
### 3. Docker 一键部署(推荐用于演示/验收)
```bash
cp .env.example .env # 可选:按需修改端口/密码/JWT 密钥
docker compose up -d --build # 构建并启动 mariadb + backend + frontend
# 前端:http://localhost (Nginx 托管静态资源并反代 /api)
# 后端:http://localhost:8080
@@ -56,8 +57,8 @@ docker compose down -v # 停止并清空数据库(下次启动重建
- 编排:`mariadb:11.4`(数据持久化到命名卷)+ 后端多阶段构建镜像(JRE 21,非 root 运行)+ Nginx 前端镜像
- 三个服务均配置健康检查,后端与前端会等待上游就绪后再启动
- 可用环境变量覆盖:`WEB_PORT`(默认 80)、`BACKEND_PORT`(默认 8080)、
`DB_NAME` / `DB_USER` / `DB_PASSWORD` / `DB_ROOT_PASSWORD`、`LAB_JWT_SECRET`
- 可用环境变量(见 `.env.example`):`WEB_PORT`(默认 80)、`BACKEND_PORT`(默认 8080)、
`DB_NAME` / `DB_USER` / `DB_PASSWORD` / `DB_ROOT_PASSWORD`、`LAB_JWT_SECRET`、`JAVA_OPTS`
### 4. 演示账号
@@ -138,6 +139,7 @@ mvn verify # 运行全部测试并执行 JaCoCo 覆盖率门禁
│ └── nginx.conf
├── Dockerfile # 后端多阶段构建镜像
├── docker-compose.yml # mariadb + backend + frontend 一键编排
├── .env.example # 部署环境变量示例(复制为 .env 使用)
└── docs/design.md # 需求分析与详细设计
```

View File

@@ -63,7 +63,7 @@ services:
# 生产部署请务必覆盖为随机密钥(长度 >= 32 字节)
LAB_JWT_SECRET: ${LAB_JWT_SECRET:-lab-reservation-docker-secret-key-change-me-2026}
TZ: Asia/Shanghai
JAVA_OPTS: "-Xms256m -Xmx512m"
JAVA_OPTS: "${JAVA_OPTS:--Xms256m -Xmx512m}"
depends_on:
mariadb:
condition: service_healthy