Ruoyi Cloud本地开发环境搭建全攻略(含Docker避坑指南)
Ruoyi Cloud本地开发环境搭建全攻略含Docker避坑指南1. 环境准备与工具选型对于Java开发者来说Ruoyi Cloud作为一款基于Spring Cloud Alibaba的企业级微服务架构解决方案其本地开发环境的搭建需要系统化的准备。以下是必备组件清单核心依赖服务矩阵服务名称推荐版本必备性替代方案MySQL8.0必须MariaDBRedis6.0必须无Nacos2.2.0必须无Sentinel1.8.0可选无开发工具建议组合IDEIntelliJ IDEA Ultimate社区版缺少Spring Cloud支持版本控制Git 2.30构建工具Maven 3.8 或 Gradle 7.4容器管理Docker Desktop 4.12Mac/Windows或 Docker CE 20.10Linux提示所有版本号建议精确匹配避免因版本差异导致的兼容性问题。实际项目中曾出现过Nacos 2.1.0与Spring Cloud 2021.0.3不兼容导致服务注册失败的情况。2. 基础设施容器化部署2.1 Redis容器部署实战创建持久化配置目录结构mkdir -p ~/docker/redis/{conf,data}典型redis.conf配置优化项# 禁用保护模式允许远程连接 protected-mode no # 启用AOF持久化 appendonly yes # 设置密码生产环境必须 requirepass yourStrongPassword # 最大内存限制根据开发机配置调整 maxmemory 1gb maxmemory-policy allkeys-lru启动容器命令解析docker run -d \ --name redis-dev \ -p 6379:6379 \ -v ~/docker/redis/conf:/etc/redis \ -v ~/docker/redis/data:/data \ redis:6.2.7 \ redis-server /etc/redis/redis.conf \ --save 60 1000 # 每60秒若至少有1000次写入则快照常见问题排查技巧连接失败时使用docker logs redis-dev查看日志内存不足时可添加--memory 2g --memory-swap 4g限制资源性能测试推荐使用redis-benchmark -h 127.0.0.1 -a yourPassword2.2 MySQL容器深度配置目录结构与关键配置# 创建三级目录结构 mkdir -p ~/docker/mysql/{conf,data,logs} # 自定义配置文件示例vim ~/docker/mysql/conf/my.cnf [mysqld] default_authentication_pluginmysql_native_password character-set-serverutf8mb4 collation-serverutf8mb4_unicode_ci max_connections200 innodb_buffer_pool_size1G启动命令中的安全实践docker run -d \ --name mysql-dev \ -p 3306:3306 \ -e MYSQL_ROOT_PASSWORDComplexPwd123 \ -e MYSQL_USERruoyi \ -e MYSQL_PASSWORDRuoyi2023 \ -e MYSQL_DATABASEry-cloud \ -v ~/docker/mysql/conf:/etc/mysql/conf.d \ -v ~/docker/mysql/data:/var/lib/mysql \ -v ~/docker/mysql/logs:/var/log/mysql \ mysql:8.0.32 \ --innodb-flush-methodO_DIRECT \ --skip-name-resolve注意MySQL 8.0默认使用caching_sha2_password认证部分旧客户端需要显式指定mysql_native_password插件。3. 微服务核心组件部署3.1 Nacos服务治理中心高可用单机模式部署docker run -d \ --name nacos-dev \ -p 8848:8848 \ -p 9848:9848 \ -p 9849:9849 \ -e MODEstandalone \ -e SPRING_DATASOURCE_PLATFORMmysql \ -e MYSQL_SERVICE_HOSThost.docker.internal \ -e MYSQL_SERVICE_PORT3306 \ -e MYSQL_SERVICE_USERruoyi \ -e MYSQL_SERVICE_PASSWORDRuoyi2023 \ -e MYSQL_SERVICE_DB_NAMEry-config \ -e NACOS_AUTH_ENABLEtrue \ nacos/nacos-server:v2.2.0关键配置检查清单数据库初始化脚本是否包含ry-config.sqlbootstrap.yml中namespace与生产环境区分开启认证后需在application.yml配置用户名密码3.2 Sentinel流量控制台轻量级部署方案docker run -d \ --name sentinel-dev \ -p 8080:8080 \ -e JAVA_OPTS-Dsentinel.dashboard.auth.usernameadmin -Dsentinel.dashboard.auth.passwordsentinel123 \ bladex/sentinel-dashboard:1.8.6集成时需要关注的配置项spring: cloud: sentinel: transport: dashboard: localhost:8080 port: 8719 eager: true # 立即初始化 filter: enabled: false # 关闭Servlet Filter4. 项目初始化与调试4.1 代码获取与依赖处理推荐克隆策略git clone --depth1 https://gitee.com/y_project/RuoYi-Cloud.git cd RuoYi-Cloud mvn clean install -DskipTests -T 1C多模块编译加速技巧使用-pl参数指定模块编译本地仓库缓存清理mvn dependency:purge-local-repository离线模式mvn -o package4.2 配置文件关键修改点必须检查的配置项网关服务配置spring: cloud: nacos: discovery: server-addr: 127.0.0.1:8848 sentinel: transport: dashboard: 127.0.0.1:8080 # Redis连接池优化 lettuce: pool: max-active: 20 max-wait: 5000 max-idle: 10 min-idle: 5数据库连接池优化spring: datasource: druid: initial-size: 5 min-idle: 5 max-active: 20 max-wait: 60000 time-between-eviction-runs-millis: 60000 min-evictable-idle-time-millis: 300000 validation-query: SELECT 1 test-while-idle: true test-on-borrow: false test-on-return: false5. 深度调试技巧5.1 容器网络问题排查跨容器通信解决方案# 创建自定义网络 docker network create ruoyi-net # 启动时加入同一网络 docker run --networkruoyi-net ... # 测试容器间连通性 docker exec -it nacos-dev ping mysql-dev端口冲突处理方案# 查找占用端口进程 lsof -i :8848 # Windows替代方案 netstat -ano | findstr 88485.2 日志收集与分析ELK简易部署方案# Filebeat配置示例 filebeat.inputs: - type: log paths: - /var/lib/docker/containers/*/*.log output.elasticsearch: hosts: [localhost:9200]日志级别动态调整# 通过Actuator端点调整 curl -X POST http://localhost:8080/actuator/loggers/com.ruoyi \ -H Content-Type: application/json \ -d {configuredLevel:DEBUG}6. 生产力工具集成6.1 开发辅助工具推荐数据库管理DBeaver多数据库支持RedisInsight可视化Redis工具API测试Postman完整测试套件Insomnia轻量级替代方案监控体系# Prometheus Grafana快速启动 docker-compose -f docker-compose-monitoring.yml up6.2 IDE高效配置IntelliJ专属优化开启Annotation Processing配置Lombok插件启用Spring Boot DevTools热部署推荐插件列表GitToolBoxMaven HelperArthas Idea调试配置示例configuration jvmArgs -agentlib:jdwptransportdt_socket,servery,suspendn,address5005 -Dspring.devtools.restart.enabledtrue /jvmArgs /configuration在实际项目部署中我们发现合理配置Docker资源限制可以显著提高开发机性能。例如为MySQL容器分配固定内存docker update mysql-dev --memory 2g --memory-swap 3g --cpus 1.5