ruoyi-vue-pro 部署 KRA 可行性评估

更新时间:2026-06-18 23:35:48 CST;仓库:YunaiV/ruoyi-vue-pro;本地检视提交:51b3d2d(2026-06-07)

结论:可部署,但更适合“先按单体 Spring Boot + 独立前端 + MySQL + Redis”部署;若 KRA 是 Kubernetes/容器平台,可行性高,需要补齐前端源码/镜像构建来源、外置 MySQL/Redis、Ingress 路由和生产配置。

1. 快速结论

问题判断理由
能不能部署到 KRA可行后端已有 Dockerfile,官方提供 docker-compose;运行形态是典型容器化 Web 应用:Java 服务 + MySQL + Redis + 前端 Nginx。
是否适合直接生产上 KRA需改造仓库只有 Compose 示例,没有 Kubernetes/Helm manifests;示例使用默认弱密码、local profile、容器内 MySQL/Redis,不应直接生产使用。
复杂度中等项目大但主干部署依赖少;复杂点在数据库初始化、前端仓库来源、模块裁剪、生产配置和对象存储/定时任务/消息队列选型。
推荐路径两阶段先用 Docker Compose/单机验证,再转换成 KRA/K8s Deployment + Service + Ingress + Secret + PVC/托管数据库。

2. 项目画像

维度检视结果
后端JDK 8 + Spring Boot 2.7.18,多模块 Maven 单体;根 pom 默认只启用 server/system/infra/framework/dependencies,多数业务模块默认注释。
前端README 指向多个独立前端:Vue3 Element Plus、Vue3 Vben、Vue2、uniapp 等。本仓库 yudao-ui/* 只有 README,没有完整前端源码。
数据库默认 MySQL,SQL 位于 sql/mysql/ruoyi-vue-pro.sql(约 1.39MB)和 quartz.sql;也提供 Oracle/PostgreSQL/SQLServer/国产库目录。
缓存/会话Redis 必需,认证 token、缓存、验证码、分布式锁等依赖 Redis。
端口后端默认 48080;Compose 示例前端暴露 8080:80,MySQL 3306,Redis 6379。
代码规模本次检视到 Java 文件 5475 个,SQL 41 个,YAML/YML 24 个;属于大型后台系统脚手架。

3. 已有部署资产

文件作用可复用性
yudao-server/Dockerfile基于 eclipse-temurin:8-jre,复制 target/yudao-server.jar,启动 java -jar,暴露 48080。:可直接作为 KRA 后端镜像基础。
script/docker/docker-compose.yml定义 MySQL、Redis、server、admin 四个服务;通过环境变量覆盖 JDBC/Redis 配置。:适合本地/体验环境,不适合原样生产。
script/docker/docker.env默认数据库名、root 密码、JVM 参数、前端构建参数。:含默认密码,只能作模板。
sql/mysql/*.sql初始化业务库和 Quartz 表。:KRA 部署前需导入托管 MySQL 或初始化 Job。
K8s/Helm未发现官方 Kubernetes manifests 或 Helm chart。需新建

4. KRA 部署可行方案

方案 A:KRA 支持 Docker Compose

方案 B:KRA 是 Kubernetes/容器应用平台(推荐生产)

组件KRA/K8s 资源建议备注
后端 yudao-serverDeployment + Service + ConfigMap + Secret镜像由 Maven 构建 jar 后打包;通过 env/args 注入 JDBC、Redis、profile、JVM。
前端 admin独立 Nginx 镜像 + Service + Ingress需先确定采用哪个前端仓库;当前主仓库没有完整前端源码。
MySQL优先托管 MySQL;其次 StatefulSet + PVC生产不要把 MySQL 当无状态容器跑;初始化 SQL 要可追踪。
Redis优先托管 Redis;其次 StatefulSet + PVC/密码认证、验证码、缓存依赖 Redis,需高可用与密码。
入口Ingress / Gateway典型路径:前端 /,API /prod-api 反代到后端 48080。
持久化文件PVC 或对象存储项目涉及文件上传/素材,生产建议接 S3/OSS/MinIO 类对象存储。

5. 主要风险与处理

风险影响处理建议
前端源码缺失Compose 中引用 script/docker/yudao-ui-admin,但本次克隆未见该目录;主仓库 yudao-ui/* 只有 README。选定并拉取独立前端仓库,例如 README 指向的 Vue3 Element Plus 或 Vben 仓库,再单独构建镜像。
默认 local profile示例配置偏开发,本地数据库、弱密码、Swagger/Druid 暴露风险。新增/整理 prod profile;禁用或加固 Swagger、Druid、Actuator;所有密钥进 Secret。
数据库初始化首次启动依赖 SQL;版本升级涉及迁移。生产用 Flyway/Liquibase 或一次性 Job 管理初始化;不要靠 MySQL 容器自动导入作为长期机制。
定时任务 Quartz多副本后可能重复执行或锁竞争。确认 Quartz JDBC 集群表与配置;初期后端副本可先 1 个,稳定后再扩容。
模块过多镜像、启动时间、数据库表和权限复杂。先保持根 pom 默认模块;按业务需要再启用 mall/pay/report/ai/iot 等模块。
Java 8 技术栈安全基线和运行镜像较旧。若 KRA 基线要求新 JDK,可考虑项目 master-jdk17 分支;否则固定 Temurin 8 并做镜像扫描。

6. 建议落地步骤

  1. 确认 KRA 能力边界:是否支持 Docker Compose、K8s YAML、托管 MySQL/Redis、私有镜像仓库、Ingress/域名/证书、PVC。
  2. 本地 PoC:构建后端 jar;拉取并构建一个前端仓库;用 Compose 连通 MySQL/Redis/API/前端。
  3. 生产配置:整理 application-prod.yaml 或环境变量;把数据库、Redis、JWT/加密密钥、对象存储配置 Secret 化。
  4. 转换 KRA 清单:创建后端 Deployment、前端 Deployment、Service、Ingress、Secret、ConfigMap;数据库/Redis 用托管服务或 StatefulSet。
  5. 验收:访问登录页、验证码、登录、菜单加载、文件上传、定时任务、Druid/Swagger 暴露状态、重启恢复、备份恢复。

7. 最小资源预估

环境建议资源说明
PoC/演示2 vCPU / 4GB RAM / 20GB 磁盘后端 512MB 堆 + MySQL + Redis + 前端,够基本体验。
小型生产4 vCPU / 8GB RAM 起;MySQL/Redis 独立或托管后端堆建议 1-2GB;数据库 IO 和连接池要单独评估。
多副本生产后端 2+ 副本,前端 2+ 副本,DB/Redis 高可用需处理 Quartz、会话/token、对象存储和数据库连接数。

8. 需要你补充的 KRA 参数