Files
railwaysystem/docs/codebase-audit/07_runtime_and_environment.md

104 lines
4.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 启动方式与运行环境
> 本次只整理配置和现有脚本,没有启动 Redis、后端、前端或数据库,没有执行 Maven/npm 构建。
## 1. 后端启动
### 现有方式
- Spring Boot 入口:`RuoYi-Vue/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java`。
- Maven 父工程:`RuoYi-Vue/pom.xml`;可按 Maven 多模块方式构建 `ruoyi-admin`,但本次没有执行,因为会产生/更新 `target`。
- 当前工作树已有 `RuoYi-Vue/ruoyi-admin/target/ruoyi-admin.jar`。
- 未跟踪脚本 `start-local.sh` 会用以下方式启动现有 JAR:
```text
java --add-opens ... -jar RuoYi-Vue/ruoyi-admin/target/ruoyi-admin.jar
```
脚本将日志写到 `RuoYi-Vue/ruoyi-admin/backend.log`,并检查 `http://localhost:8090/captchaImage`。
### 默认端口与上下文
- 后端 HTTP 端口:`8090`。
- context path:`/`。
- 配置文件:`RuoYi-Vue/ruoyi-admin/src/main/resources/application.yml`。
## 2. 前端启动
当前培训前端目录:`build_ui/`。
`build_ui/package.json` 定义:
```text
npm run dev # vue-cli-service serve
npm run build:prod # 生产构建
npm run build:stage # staging 构建
npm run lint # ESLint;配置含 --fix,会修改文件,本次未执行
```
当前 `build_ui/node_modules/.bin/vue-cli-service` 存在。`build_ui/vue.config.js` 当前开发端口为 `8080`,代理 `/dev-api` 到 `http://localhost:8090` 并移除前缀。
`start-local.sh` 会先探测 8080;若未启动则在 `build_ui` 执行 `npm run dev`。该脚本会启动服务、创建目录并写日志,因此本次没有执行。
## 3. 数据库连接
| 项目 | 当前配置 |
| --- | --- |
| 配置文件 | `RuoYi-Vue/ruoyi-admin/src/main/resources/application-druid.yml` |
| 数据库 | KingbaseES |
| 驱动 | `com.kingbase8.Driver` / Maven `com.kingbase:kingbase8:8.6.0` |
| 数据库与 schema | `training` / `public` |
| 连接池 | Druid |
| 校验 SQL | `SELECT 1 FROM DUAL` |
主机、端口、用户名和口令直接写在配置文件中,没有通过环境变量注入;本报告不复述凭据。文件中还保留多组已注释的 MySQL/Kingbase历史连接信息。
## 4. Redis 要求
- 配置文件:`application.yml`。
- 当前地址:`localhost:6379`,database 0,无密码配置。
- 本机检测到 `/opt/homebrew/bin/redis-server`。
- Redis 用于 token 会话、登录状态续期、验证码缓存、密码错误计数、系统缓存和在线用户,因此正常登录链路需要 Redis。
- `start-local.sh` 会通过 `redis-cli ping` 探测并在需要时以 daemon 方式启动 Redis;本次未执行。
## 5. Profile 与环境文件
### 后端
- `spring.profiles.active: druid`。
- 存在 `application.yml` 与 `application-druid.yml`。
- 未发现独立的 `application-dev.yml`、`application-test.yml`、`application-prod.yml`。
- `application-druid.yml` 内通过注释区分开发/生产连接,并非可切换的 Spring profile。
### 前端
| 模式 | 文件 | API 前缀 |
| --- | --- | --- |
| development | `build_ui/.env.development` | `/dev-api` |
| staging | `build_ui/.env.staging` | `/stage-api` |
| production | `build_ui/.env.production` | `/prod-api` |
开发代理只对当前 `VUE_APP_BASE_API` 生效;生产/测试部署需要由外部 Web 服务器或网关将相应前缀转发到后端,仓库中未见完整部署配置。
## 6. 环境变量
- 后端 datasource、Redis、JWT secret 等均来自 YAML 固定值;未发现必须由操作系统提供的业务环境变量。
- 前端通过 `.env.*` 注入 `VUE_APP_TITLE`、`VUE_APP_BASE_API`、`ENV`,开发模式还设置 `VUE_CLI_BABEL_TRANSPILE_MODULES`。
- `vue.config.js` 可通过 `port` 或 `npm_config_port` 覆盖前端端口。
## 7. 当前机器工具链
| 工具 | 当前机器版本 | 项目目标/声明 | 说明 |
| --- | --- | --- | --- |
| Java | OpenJDK 21.0.2 | POM target/source 1.8 | 版本跨度较大;现有脚本加了若干 `--add-opens` |
| Maven | 3.9.2 | 未单独锁定 wrapper | 来自 IntelliJ 内置 Maven 路径 |
| Node | 22.23.2 | `>=8.9` | `vue.config.js` 有未提交 MD4 兼容补丁 |
| npm | 10.9.8 | `>=3.0.0` | 依赖目录存在,本次未安装/更新 |
| Redis Server | Homebrew 路径存在 | localhost:6379 | 本次未探测运行状态 |
## 8. 当前启动可验证程度
仓库内有后端 JAR和前端依赖,但不能据此确认它们与当前未提交源码一致。尤其当前源码有 Controller 路径、前端 API、端口和配置改动;现有 JAR可能早于这些修改。
本次未执行启动、健康检查、登录、API 调用或数据库查询,所以运行状态标记为“未验证”。