部署若依微服务到生产环境
将若依微服务(RuoYi-Cloud)部署到生产环境,主流方案是容器化部署(Docker + Docker Compose 或 Kubernetes)。相比直接在服务器运行 JAR 包,容器化能更好地解决环境一致性和服务编排问题。
你可以根据团队规模和服务器数量,选择以下两种常见路径:
方案一:Docker Compose 单机构建(适合中小型项目)
如果暂时没有 K8s 集群,可以用 Docker Compose 在单台或多台服务器上快速编排所有服务,也是若依自带 docker目录所支持的玩法。
-
生产配置修改
-
将 Nacos 里的配置文件切换为
prod环境,把 MySQL、Redis 地址改成生产内网地址,务必修改默认密码。 -
前端
ruoyi-ui执行npm run build:prod打出 dist 静态包,配置 Nginx 反向代理(转发/prod-api到网关地址)。
-
-
后端打包与镜像构建
-
使用 Maven 执行
clean package,在每个模块 target 目录拿到可执行 JAR。 -
结合项目自带的
Dockerfile,通过docker build -t 服务名:版本 .构建各个微服务的镜像。
-
-
编写 docker-compose.yml 启动
-
先启动基础设施(MySQL、Redis、Nacos、MinIO 等)。
-
再启动业务服务(ruoyi-gateway、ruoyi-auth、ruoyi-modules-system 等)。
-
注意:容器间通信如果用自定义网络,不要写
localhost,要用容器服务名。
-
方案二:Kubernetes 生产级编排(适合中大型项目)
当微服务实例变多、需要弹性伸缩和高可用时,K8s 是更优选择。
-
基础环境与镜像仓库
-
准备好 K8s 集群(建议生产环境中间件单独节点,避免资源争抢)。
-
搭建 Harbor 等私有镜像仓库,提前把 MySQL/Redis/Nacos 基础镜像及业务镜像推送进去。
-
-
部署顺序(非常关键)
严格按依赖启动,避免服务因连不上配置中心或数据库而崩溃:
中间件(MySQL→Redis→Nacos) → 推送 Nacos 业务配置 → 业务服务(Gateway→Auth→System→其他)。
-
服务编排
-
有状态服务(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 示例。
更多推荐
所有评论(0)