当前位置: 首页 > news >正文

别再到处找教程了!用Docker Compose一键部署RuoYi-Cloud微服务全家桶(含Nacos 2.x + Sentinel)

用Docker Compose三分钟搭建RuoYi-Cloud微服务全家桶

在微服务架构盛行的当下,Spring Cloud Alibaba生态已成为企业级开发的热门选择。RuoYi-Cloud作为基于该生态的权限管理系统,集成了Nacos、Sentinel等核心组件,但传统部署方式需要逐个安装配置十余个服务,对开发者极不友好。本文将演示如何通过Docker Compose实现"一条命令启动全家桶",让环境搭建从小时级缩短到分钟级。

1. 环境架构设计

RuoYi-Cloud的标准部署包含以下核心服务:

  • 基础服务层:MySQL 5.7、Redis 6
  • 注册中心:Nacos 2.1.0
  • 流量治理:Sentinel 1.8.0
  • 应用服务
    • RuoYi-Gateway(网关)
    • RuoYi-Auth(认证中心)
    • RuoYi-System(系统模块)
    • RuoYi-Monitor(监控中心)
  • 前端服务:Nginx + Vue构建产物

传统部署方式需要手动安装JDK、Node.js、MySQL等基础环境,再逐个启动微服务组件。而容器化方案通过以下设计实现自动化:

version: '3.8' services: nacos: image: nacos/nacos-server:v2.1.0 environment: - MODE=standalone ports: - "8848:8848" redis: image: redis:6-alpine ports: - "6379:6379"

提示:Nacos 2.x版本需要保持8848端口映射,这是控制台默认端口。生产环境建议配置持久化卷。

2. 关键配置解析

2.1 服务依赖管理

微服务启动存在严格顺序要求:

  1. 基础设施(MySQL、Redis)
  2. 注册中心(Nacos)
  3. 监控组件(Sentinel)
  4. 业务服务(按依赖顺序启动)

通过Docker Compose的depends_on和健康检查实现:

ruoyi-gateway: image: ruoyi-cloud-gateway:latest depends_on: nacos: condition: service_healthy redis: condition: service_healthy healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8080/actuator/health"] interval: 30s

2.2 网络配置技巧

建议创建独立网络避免端口冲突:

docker network create ruoyi-net

在compose文件中声明网络:

networks: ruoyi-net: driver: bridge ipam: config: - subnet: 172.28.0.0/16

服务间通过容器名通信,例如Gateway连接Auth服务:

spring.cloud.nacos.discovery.server-addr=nacos:8848

3. 实战部署流程

3.1 准备部署文件

项目目录结构建议:

ruoyi-cloud-docker/ ├── docker-compose.yml ├── config/ │ ├── nacos/ │ ├── mysql/ ├── sql/ │ └── init.sql └── apps/ ├── gateway.jar ├── auth.jar

关键操作步骤:

  1. 下载官方发布的Docker镜像或自行构建
  2. 初始化数据库脚本放入/docker-entrypoint-initdb.d
  3. 配置Nacos持久化数据卷:
volumes: nacos-data: driver: local

3.2 一键启动命令

启动全部服务并后台运行:

docker-compose up -d

实时查看日志:

docker-compose logs -f ruoyi-gateway

服务状态检查:

docker-compose ps

4. 常见问题排查

4.1 启动超时处理

若服务启动失败,典型原因包括:

  • 数据库连接失败:检查MySQL容器是否正常启动
  • Nacos未就绪:增加服务启动等待时间
environment: SPRING_DATASOURCE_URL: jdbc:mysql://mysql:3306/ry-cloud?useSSL=false&serverTimezone=UTC SPRING_CLOUD_NACOS_CONNECT_TIMEOUT: 30000

4.2 性能调优建议

开发环境可限制资源使用:

deploy: resources: limits: cpus: '0.5' memory: 512M

生产环境推荐配置:

  • MySQL单独部署物理机
  • Redis启用持久化
  • Nacos集群部署

5. 进阶使用技巧

5.1 动态扩展实例

横向扩展Gateway服务:

docker-compose up -d --scale ruoyi-gateway=3

5.2 版本升级策略

采用蓝绿部署方案:

  1. 构建新版本镜像并推送到仓库
  2. 修改compose文件中的镜像标签
  3. 执行滚动更新:
docker-compose pull && docker-compose up -d

5.3 监控集成方案

Prometheus监控配置示例:

ruoyi-monitor: image: prom/prometheus:v2.30 ports: - "9090:9090" volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml

配套的Grafana仪表盘可直观展示:

  • JVM内存使用
  • 接口QPS
  • 数据库连接池状态
http://www.jsqmd.com/news/855254/

相关文章:

  • 2026年4月优秀制氮机推荐榜:半导体用制氮机、半导体用氨分解、变压吸附制氮机、工业制氮机、氨分解发生炉、氨分解纯化选择指南 - 优质品牌商家
  • 3分钟学会B站缓存视频转换:m4s转MP4完整指南
  • 避坑指南:Blender UV映射时遇到的‘白色背景’、‘法线翻转’怎么办?附解决方案
  • 解决 GreatSQL 报错:存储过程字符集排序规则不兼容问题
  • 从Excel到预测:5分钟搞定Python读取本地iris.csv文件并完成分类
  • 从Controller到Agent:一篇讲透EasyMesh协议里的那些“黑话”与实战配置
  • 从Modbus报文到角度值:手把手教你用三菱FX3U的RS2指令读取绝对值编码器
  • 华为ENSP模拟器实战:手把手教你配置LACP链路聚合,实现带宽翻倍与链路备份
  • 告别舵机抖动!用PCA9685驱动16路舵机,51单片机/STM32代码实测(附Proteus仿真文件)
  • 数科OFD阅读历史清理全攻略:统信UOS/麒麟KYLINOS下图形界面与命令行两种方法实测
  • 【Perplexity读书笔记生成黄金公式】:基于127篇实证测试报告,提炼出精准摘要+批判性批注+知识图谱联动的三阶模型
  • 论性能测试
  • 合宙ESP32 S3接SD卡模块总失败?可能是HSPI和VSPI的坑(附完整引脚配置)
  • 别再死记硬背了!用Python和C语言两种方式,带你一步步手算Modbus CRC16校验码
  • 深入理解PCIe地址转换(ATU):以DW控制器为例,图解Inbound/Outbound与DMA配置
  • 别再为AR发布头疼了!Unity + Vuforia打包安卓APK的完整避坑清单(从Player Settings到Quality)
  • 3分钟搞定音乐格式转换:你的私人音乐解锁神器使用全攻略
  • Qt QAction的隐藏玩法:除了菜单,还能用在工具栏、快捷键和右键菜单?
  • LAMMPS模拟避坑指南:用fix deform做石墨烯拉伸,为什么我建议新手先别用velocity方式?
  • 论文排版不求人:手把手教你用Word样式搞定独立目录、分栏与页眉页脚
  • 2026年Q2日本红枫苗木选购评测:鸡爪槭苗木/乌桕苗木/巨紫荆苗木/朴树苗木/榉树苗木/樱花苗木/欧洲枫香苗木/选择指南 - 优质品牌商家
  • RT-Thread Studio安装后别急着关:手把手带你完成第一个‘点亮LED’的STM32项目
  • 别再只调参数了!深入Niagara自定义模块:从看懂官方示例到写出自己的第一个功能
  • 顶会超神思路!扩散模型+Transformer,速度精度双飞升!
  • 2026靖江网络公司评测:靖江网站建设/兴化AI优化/兴化做网站/兴化网站优化/兴化网站建设/姜堰geo优化/姜堰网站优化/选择指南 - 优质品牌商家
  • 2026年Q2氨分解设备诚信标杆名录:氨分解发生炉/氨分解纯化/稀土行业用氨分解/立方制氮装置/冶金行业用制氮机/选择指南 - 优质品牌商家
  • 城市网格化治理平台
  • 论秒杀场景及其技术解决方案
  • Postgresql基础实践教程
  • Source Han Serif TTF技术方案:跨平台中文字体部署与性能优化深度解析