当前位置: 首页 > 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.gsyq.cn/news/1335217.html

相关文章:

  • 论文查重,重复率太高怎么办?
  • 华为ENSP模拟器实战:手把手教你配置LACP链路聚合,实现带宽翻倍与链路备份
  • 2026年腾讯云OpenClaw/Hermes Agent配置Token Plan保姆式教学
  • 好用的合同管理系统怎么选?8个真实选型标准
  • 别再只改POI版本了!解决EasyExcel报错,你可能还漏了xmlbeans这个关键依赖
  • 从Hi-Fi耳机到5G基站:聊聊FIR和IIR滤波器那些意想不到的应用场景
  • 别再只用串口了!手把手教你用STM32CubeMX配置LIN总线(基于TJA1020收发器)
  • 把OpenWrt路由器变成轻量Web服务器:手把手教你配置NGINX并挂载外部存储
  • 合宙ESP32 S3接SD卡模块总失败?可能是HSPI和VSPI的坑(附完整引脚配置)
  • DistroAV:基于NDI技术的OBS Studio网络音视频传输解决方案
  • c语言之时间格式化之转换为yyyy-MM-dd‘T‘HH:mm:ss.SSSZ 例如“2026-12-17T17:26:40.979+0700”
  • Qt QAction的隐藏玩法:除了菜单,还能用在工具栏、快捷键和右键菜单?
  • 避坑指南:Docker Buildx多架构构建时,如何正确配置BuildKit和insecure-registry推送
  • STM32CubeMX安装后,HAL库到底怎么选?在线安装慢、离线包找不到的终极解决指南
  • Perplexity文化新闻搜索效率翻倍:从冷启动到高信噪比输出的7个被低估的底层参数配置
  • 长沙自动变速箱维修哪家强?这些公司口碑好
  • 别再纠结软件IIC了!用STM32硬件IIC驱动0.96寸OLED,实测代码稳定不掉线
  • 【软考高级架构】论文范文23——论分布式事务架构设计及应用
  • RV1126B 评估板 Linux 系统操作与配置详解
  • 从STM32到IMX6ULL:老司机带你快速迁移串口驱动开发经验
  • 面向新农服务的农产品大宗交易平台
  • 离线语音芯片:重塑智能家居本地化控制的核心技术
  • AI时代,哪些IT岗位最不容易被AI取代?
  • 2026年机械电子行业制氮与氨分解设备推荐:制氮机保养、制氮机氮气纯化、制氮机设备改造、半导体用制氮机、工业制氮机选择指南 - 优质品牌商家
  • 数科OFD阅读历史清理全攻略:统信UOS/麒麟KYLINOS下图形界面与命令行两种方法实测
  • 保姆级教程:学生用户图像-考勤画像可视化分析实验
  • 2026年做网站哪家好:姜堰AI优化、姜堰geo优化、姜堰做网站、姜堰网站优化、姜堰网站建设、姜堰网络公司、泰兴AI优化选择指南 - 优质品牌商家
  • 2026兴化AI优化服务商排行:姜堰网站建设、姜堰网络公司、泰兴AI优化、泰兴geo优化、泰兴做网站、泰兴网站优化选择指南 - 优质品牌商家
  • DeepSeek BBH得分跃升至89.7%的关键突破:动态思维链剪枝技术首度解密(附PyTorch可复现代码)
  • 金融机构 一般采用是机械硬盘还是固态硬盘