M1 MacBook Pro上从零部署RuoYi-Cloud微服务框架含Docker镜像避坑指南作为一位长期使用Apple Silicon架构MacBook Pro的Java开发者我深刻理解在ARM芯片环境下搭建微服务框架时可能遇到的各种坑。本文将分享如何在M1/M2芯片的Mac上从零开始部署RuoYi-Cloud微服务框架特别是针对Docker镜像兼容性问题的解决方案。1. 环境准备与工具安装1.1 硬件与系统要求在开始之前请确保您的设备满足以下最低要求设备型号2020年后发布的M1/M2芯片MacBook Pro/Air或Mac mini操作系统macOS Monterey (12.0) 或更高版本内存建议16GB及以上存储空间至少20GB可用空间小贴士虽然8GB内存也能运行但在同时启动多个微服务模块时可能会遇到性能瓶颈。1.2 必备软件安装JDK安装ARM原生版本# 使用Homebrew安装Azul Zulu JDKARM原生版本 brew tap homebrew/cask-versions brew install --cask zulu8验证安装java -version # 应显示类似以下信息 # openjdk version 1.8.0_362 # OpenJDK Runtime Environment (Zulu 8.68.0.21-CA-macos-aarch64) (build 1.8.0_362-b09) # OpenJDK 64-Bit Server VM (Zulu 8.68.0.21-CA-macos-aarch64) (build 25.362-b09, mixed mode)Docker Desktop for Apple Silicon从Docker官网下载Apple Silicon版本安装后在Preferences → General中启用Use Rosetta for x86/amd64 emulation在Features in development中启用Use Virtualization framework注意Docker默认会为每个容器创建独立的虚拟网络接口这可能导致网络延迟。建议在Preferences → Resources → Advanced中适当调整内存和CPU分配。2. 获取与配置RuoYi-Cloud项目2.1 克隆项目仓库git clone https://gitee.com/y_project/RuoYi-Cloud.git cd RuoYi-Cloud2.2 项目结构概览RuoYi-Cloud采用典型微服务架构主要包含以下模块模块名称功能描述是否必需ruoyi-gatewayAPI网关是ruoyi-auth认证中心是ruoyi-system系统模块是ruoyi-monitor监控中心可选ruoyi-gen代码生成可选ruoyi-job定时任务可选ruoyi-file文件服务可选3. Docker镜像配置与优化3.1 ARM兼容镜像选择在Apple Silicon上运行Docker容器时最大的挑战是找到兼容arm64架构的镜像。以下是经过验证可用的镜像版本# docker-compose.yml 关键配置 services: mysql: image: arm64v8/mysql:8.0.32 platform: linux/arm64/v8 environment: MYSQL_ROOT_PASSWORD: password MYSQL_DATABASE: ry-cloud MYSQL_USER: ruoyi MYSQL_PASSWORD: ruoyi123 ports: - 3306:3306 volumes: - mysql_data:/var/lib/mysql redis: image: arm64v8/redis:6.2.10 platform: linux/arm64/v8 ports: - 6379:6379 volumes: - redis_data:/data nacos: image: nacos/nacos-server:v2.2.0-slim platform: linux/arm64/v8 ports: - 8848:8848 environment: MODE: standalone SPRING_DATASOURCE_PLATFORM: mysql MYSQL_SERVICE_HOST: mysql MYSQL_SERVICE_DB_NAME: ry-cloud MYSQL_SERVICE_USER: ruoyi MYSQL_SERVICE_PASSWORD: ruoyi123 depends_on: - mysql volumes: mysql_data: redis_data:3.2 常见镜像问题解决方案问题1no matching manifest for linux/arm64/v8 in the manifest list entries解决方案在Docker Hub搜索时添加arm64或aarch64筛选条件使用官方支持的ARM架构镜像如arm64v8/mysql而非library/mysql问题2容器启动后立即退出解决方案检查日志docker logs container_id确保设置了必要的环境变量验证volume挂载路径是否正确4. 服务启动与配置4.1 启动基础设施服务# 在项目根目录执行 docker-compose up -d mysql redis nacos验证服务状态docker ps # 应看到三个容器正常运行4.2 Nacos配置调整访问Nacos控制台http://localhost:8848/nacos (默认账号/密码nacos/nacos)修改ruoyi-system-dev.yml中的数据库连接信息检查ruoyi-gateway-dev.yml中的路由配置提示在M1芯片上Nacos初始启动可能需要较长时间2-3分钟这是正常现象。4.3 后端服务启动顺序建议按以下顺序启动各微服务模块RuoYiGatewayApplication网关模块RuoYiAuthApplication认证模块RuoYiSystemApplication系统模块其他可选模块经验分享在IDEA中可以创建Compound运行配置一次性启动多个服务避免手动逐个启动。5. 前端项目配置与启动5.1 解决Node.js兼容性问题由于M1芯片和较新Node.js版本的特性可能会遇到OpenSSL相关错误cd ruoyi-ui # 设置环境变量解决OpenSSL3.0兼容性问题 export NODE_OPTIONS--openssl-legacy-provider npm install npm run dev5.2 前端访问配置成功启动后可以通过以下地址访问前端页面http://localhost:1024Nacos控制台http://localhost:8848/nacosSwagger文档http://localhost:8080/swagger-ui.html6. 性能优化与调试技巧6.1 Docker资源分配在~/.docker/config.json中添加以下配置可优化性能{ credsStore: osxkeychain, experimental: enabled, features: { buildkit: true }, builder: { gc: { enabled: true, defaultKeepStorage: 20GB } } }6.2 常见问题排查问题服务启动后无法连接数据库排查步骤验证数据库容器是否正常运行docker exec -it ruoyi-mysql mysql -uruoyi -pruoyi123检查Nacos配置中的数据库连接信息查看网关日志docker logs ruoyi-gateway问题前端页面加载缓慢解决方案检查Node.js版本建议v16.x清理npm缓存npm cache clean --force尝试禁用某些浏览器扩展在实际部署过程中我发现最耗时的部分通常是解决ARM架构下的镜像兼容性问题。通过使用专门为arm64架构构建的镜像并合理配置docker-compose文件可以显著提高部署成功率。
M1 MacBook Pro上从零部署RuoYi-Cloud微服务框架(含Docker镜像避坑指南)
发布时间:2026/5/26 7:02:32
M1 MacBook Pro上从零部署RuoYi-Cloud微服务框架含Docker镜像避坑指南作为一位长期使用Apple Silicon架构MacBook Pro的Java开发者我深刻理解在ARM芯片环境下搭建微服务框架时可能遇到的各种坑。本文将分享如何在M1/M2芯片的Mac上从零开始部署RuoYi-Cloud微服务框架特别是针对Docker镜像兼容性问题的解决方案。1. 环境准备与工具安装1.1 硬件与系统要求在开始之前请确保您的设备满足以下最低要求设备型号2020年后发布的M1/M2芯片MacBook Pro/Air或Mac mini操作系统macOS Monterey (12.0) 或更高版本内存建议16GB及以上存储空间至少20GB可用空间小贴士虽然8GB内存也能运行但在同时启动多个微服务模块时可能会遇到性能瓶颈。1.2 必备软件安装JDK安装ARM原生版本# 使用Homebrew安装Azul Zulu JDKARM原生版本 brew tap homebrew/cask-versions brew install --cask zulu8验证安装java -version # 应显示类似以下信息 # openjdk version 1.8.0_362 # OpenJDK Runtime Environment (Zulu 8.68.0.21-CA-macos-aarch64) (build 1.8.0_362-b09) # OpenJDK 64-Bit Server VM (Zulu 8.68.0.21-CA-macos-aarch64) (build 25.362-b09, mixed mode)Docker Desktop for Apple Silicon从Docker官网下载Apple Silicon版本安装后在Preferences → General中启用Use Rosetta for x86/amd64 emulation在Features in development中启用Use Virtualization framework注意Docker默认会为每个容器创建独立的虚拟网络接口这可能导致网络延迟。建议在Preferences → Resources → Advanced中适当调整内存和CPU分配。2. 获取与配置RuoYi-Cloud项目2.1 克隆项目仓库git clone https://gitee.com/y_project/RuoYi-Cloud.git cd RuoYi-Cloud2.2 项目结构概览RuoYi-Cloud采用典型微服务架构主要包含以下模块模块名称功能描述是否必需ruoyi-gatewayAPI网关是ruoyi-auth认证中心是ruoyi-system系统模块是ruoyi-monitor监控中心可选ruoyi-gen代码生成可选ruoyi-job定时任务可选ruoyi-file文件服务可选3. Docker镜像配置与优化3.1 ARM兼容镜像选择在Apple Silicon上运行Docker容器时最大的挑战是找到兼容arm64架构的镜像。以下是经过验证可用的镜像版本# docker-compose.yml 关键配置 services: mysql: image: arm64v8/mysql:8.0.32 platform: linux/arm64/v8 environment: MYSQL_ROOT_PASSWORD: password MYSQL_DATABASE: ry-cloud MYSQL_USER: ruoyi MYSQL_PASSWORD: ruoyi123 ports: - 3306:3306 volumes: - mysql_data:/var/lib/mysql redis: image: arm64v8/redis:6.2.10 platform: linux/arm64/v8 ports: - 6379:6379 volumes: - redis_data:/data nacos: image: nacos/nacos-server:v2.2.0-slim platform: linux/arm64/v8 ports: - 8848:8848 environment: MODE: standalone SPRING_DATASOURCE_PLATFORM: mysql MYSQL_SERVICE_HOST: mysql MYSQL_SERVICE_DB_NAME: ry-cloud MYSQL_SERVICE_USER: ruoyi MYSQL_SERVICE_PASSWORD: ruoyi123 depends_on: - mysql volumes: mysql_data: redis_data:3.2 常见镜像问题解决方案问题1no matching manifest for linux/arm64/v8 in the manifest list entries解决方案在Docker Hub搜索时添加arm64或aarch64筛选条件使用官方支持的ARM架构镜像如arm64v8/mysql而非library/mysql问题2容器启动后立即退出解决方案检查日志docker logs container_id确保设置了必要的环境变量验证volume挂载路径是否正确4. 服务启动与配置4.1 启动基础设施服务# 在项目根目录执行 docker-compose up -d mysql redis nacos验证服务状态docker ps # 应看到三个容器正常运行4.2 Nacos配置调整访问Nacos控制台http://localhost:8848/nacos (默认账号/密码nacos/nacos)修改ruoyi-system-dev.yml中的数据库连接信息检查ruoyi-gateway-dev.yml中的路由配置提示在M1芯片上Nacos初始启动可能需要较长时间2-3分钟这是正常现象。4.3 后端服务启动顺序建议按以下顺序启动各微服务模块RuoYiGatewayApplication网关模块RuoYiAuthApplication认证模块RuoYiSystemApplication系统模块其他可选模块经验分享在IDEA中可以创建Compound运行配置一次性启动多个服务避免手动逐个启动。5. 前端项目配置与启动5.1 解决Node.js兼容性问题由于M1芯片和较新Node.js版本的特性可能会遇到OpenSSL相关错误cd ruoyi-ui # 设置环境变量解决OpenSSL3.0兼容性问题 export NODE_OPTIONS--openssl-legacy-provider npm install npm run dev5.2 前端访问配置成功启动后可以通过以下地址访问前端页面http://localhost:1024Nacos控制台http://localhost:8848/nacosSwagger文档http://localhost:8080/swagger-ui.html6. 性能优化与调试技巧6.1 Docker资源分配在~/.docker/config.json中添加以下配置可优化性能{ credsStore: osxkeychain, experimental: enabled, features: { buildkit: true }, builder: { gc: { enabled: true, defaultKeepStorage: 20GB } } }6.2 常见问题排查问题服务启动后无法连接数据库排查步骤验证数据库容器是否正常运行docker exec -it ruoyi-mysql mysql -uruoyi -pruoyi123检查Nacos配置中的数据库连接信息查看网关日志docker logs ruoyi-gateway问题前端页面加载缓慢解决方案检查Node.js版本建议v16.x清理npm缓存npm cache clean --force尝试禁用某些浏览器扩展在实际部署过程中我发现最耗时的部分通常是解决ARM架构下的镜像兼容性问题。通过使用专门为arm64架构构建的镜像并合理配置docker-compose文件可以显著提高部署成功率。