# 部署指南 ## Docker Compose ```bash scripts/dev-up.sh ``` `dev-up.sh` 会先生成 `storage/runtime/docker-compose.limits.yml`,再叠加到主 Compose 文件启动服务。默认策略: - Docker 项目总 CPU 预算按宿主机可用 CPU 的 80% 计算,并分配给数据库、中间件、后端和前端。 - Docker 项目总内存预算按宿主机内存的 65% 计算,并为每个服务设置 `mem_limit` 与 `memswap_limit`。 - Compose 构建默认串行执行,降低服务器构建时的资源尖峰。 - 后端 Maven 构建使用 `MAVEN_OPTS` 限制 Java 构建进程的可见 CPU 与堆内存;前端 Node 构建使用 `NODE_OPTIONS` 限制 V8 老生代内存。 - 前端构建堆内存独立于 Nginx 运行容器预算,最低为 1024MB,避免 `vue-tsc` 或 Vite 在低内存服务器上因 256MB 左右的默认堆限制失败。 - RabbitMQ 单独保留更高的最低内存,并通过 `deploy/rabbitmq.conf` 设置内存水位,避免受限容器中 Erlang 监控进程因资源过紧退出。 如需查看实际限制值: ```bash cat storage/runtime/docker-compose.limits.yml ``` 服务端口: - Web UI:5173 - API:8080 - PostgreSQL:5432 - Redis:6379 - RabbitMQ:5672 - RabbitMQ 管理界面:15672 ## 环境变量 - `SPRING_PROFILES_ACTIVE`:默认 `lab` - `DB_URL`、`DB_USERNAME`、`DB_PASSWORD` - `REDIS_HOST` - `RABBITMQ_HOST`、`RABBITMQ_USERNAME`、`RABBITMQ_PASSWORD` - `JWT_SECRET` - `TASKS_INLINE` - `LAB_EMPLOYEE_COUNT`、`LAB_CANDIDATE_COUNT`、`LAB_ATTENDANCE_DAYS` ## 验证 ```bash scripts/run-smoke.sh ```