将若依微服务(RuoYi-Cloud)部署到生产环境,主流方案是容器化部署(Docker + Docker Compose 或 Kubernetes)。相比直接在服务器运行 JAR 包,容器化能更好地解决环境一致性和服务编排问题。

你可以根据团队规模和服务器数量,选择以下两种常见路径:


方案一:Docker Compose 单机构建(适合中小型项目)

如果暂时没有 K8s 集群,可以用 Docker Compose 在单台或多台服务器上快速编排所有服务,也是若依自带 docker目录所支持的玩法。

  1. 生产配置修改

    • 将 Nacos 里的配置文件切换为 prod环境,把 MySQL、Redis 地址改成生产内网地址,务必修改默认密码

    • 前端 ruoyi-ui执行 npm run build:prod打出 dist 静态包,配置 Nginx 反向代理(转发 /prod-api到网关地址)。

  2. 后端打包与镜像构建

    • 使用 Maven 执行 clean package,在每个模块 target 目录拿到可执行 JAR。

    • 结合项目自带的 Dockerfile,通过 docker build -t 服务名:版本 .构建各个微服务的镜像。

  3. 编写 docker-compose.yml 启动

    • 先启动基础设施(MySQL、Redis、Nacos、MinIO 等)。

    • 再启动业务服务(ruoyi-gateway、ruoyi-auth、ruoyi-modules-system 等)。

    • 注意:容器间通信如果用自定义网络,不要写 localhost,要用容器服务名。


方案二:Kubernetes 生产级编排(适合中大型项目)

当微服务实例变多、需要弹性伸缩和高可用时,K8s 是更优选择。

  1. 基础环境与镜像仓库

    • 准备好 K8s 集群(建议生产环境中间件单独节点,避免资源争抢)。

    • 搭建 Harbor 等私有镜像仓库,提前把 MySQL/Redis/Nacos 基础镜像及业务镜像推送进去。

  2. 部署顺序(非常关键)

    严格按依赖启动,避免服务因连不上配置中心或数据库而崩溃:

    中间件(MySQL→Redis→Nacos) → 推送 Nacos 业务配置 → 业务服务(Gateway→Auth→System→其他)

  3. 服务编排

    • 有状态服务(MySQL/Redis)通常用 StatefulSet + PVC 做持久化。

    • 无状态业务服务(Gateway/Auth/System)用 Deployment 方便扩缩容,通过 Ingress/Nginx 暴露前端和网关入口。


CI/CD 自动化(推荐)

生产环境建议避免人工上去敲命令,可搭建 Jenkins/GitLab CI​ 流水线:

  • 提交代码/打 Tag → 自动拉代码 → Maven 编译 → 构建 Docker 镜像 → 推 Harbor → 远程执行 kubectl 或 docker-compose 重启服务。


几个生产环境容易踩的坑

  • Nacos 配置未发布:应用启动第一时间读配置,配置不生效或没切 prod 会导致连错库或直接退出。

  • 容器网络互通:Docker 容器里配置不能写 127.0.0.1,要写宿主机 IP 或服务名。

  • 资源不足:尤其是 MySQL 和 Redis 比较吃内存,服务器内存太小会被 OOM Kill。

  • 前端验证码/静态资源转圈:通常是 Nginx 代理 /prod-api转发异常或后端网关路由配置问题。

如果你告诉我你们目前有几台服务器、有没有 K8s 集群,以及打算用 Docker Compose 还是 K8s,我可以帮你整理一份更贴合你场景的 docker-compose.yml 或 K8s YAML 示例

更多推荐