首页
/ JeecgBoot项目基于Docker Compose的云原生部署指南

JeecgBoot项目基于Docker Compose的云原生部署指南

2025-07-05 02:01:20作者:傅爽业Veleda

概述

JeecgBoot作为一款基于Spring Boot的低代码开发平台,其云原生架构版本提供了完善的微服务解决方案。本文将深入解析项目中的docker-compose-cloud.yml文件,帮助开发者理解如何通过Docker Compose快速部署JeecgBoot的云原生环境。

核心服务组件

1. MySQL数据库服务

jeecg-boot-mysql:
  build:
    context: ./jeecg-boot/db
  environment:
    MYSQL_ROOT_PASSWORD: root
    MYSQL_ROOT_HOST: '%'
    TZ: Asia/Shanghai
  command:
    --character-set-server=utf8mb4
    --collation-server=utf8mb4_general_ci
    --lower_case_table_names=1

该配置定义了一个定制化的MySQL容器,关键特性包括:

  • 使用utf8mb4字符集,完美支持emoji等特殊字符
  • 设置表名大小写不敏感(lower_case_table_names=1),确保跨平台兼容性
  • 配置了128MB的最大数据包大小,适合处理大字段数据
  • 使用caching_sha2_password认证插件,增强安全性

2. Redis缓存服务

jeecg-boot-redis:
  image: registry.cn-hangzhou.aliyuncs.com/jeecgdocker/redis:5.0
  ports:
    - 6379:6379

采用Redis 5.0版本,提供:

  • 高性能的缓存服务
  • 会话管理支持
  • 分布式锁实现基础

3. Nacos服务注册中心

jeecg-boot-nacos:
  build:
    context: ./jeecg-boot/jeecg-server-cloud/jeecg-cloud-nacos
  ports:
    - 8848:8848
  depends_on:
    - jeecg-boot-mysql

Nacos作为服务发现和配置中心:

  • 依赖MySQL持久化配置数据
  • 提供微服务的注册与发现能力
  • 支持动态配置管理

4. 微服务核心组件

jeecg-boot-system:
  build:
    context: ./jeecg-boot/jeecg-server-cloud/jeecg-system-cloud-start

jeecg-boot-demo:
  build:
    context: ./jeecg-boot/jeecg-server-cloud/jeecg-demo-cloud-start

jeecg-boot-gateway:
  build:
    context: ./jeecg-boot/jeecg-server-cloud/jeecg-cloud-gateway
  ports:
    - 9999:9999

这三个服务构成了JeecgBoot微服务架构的核心:

  • 系统服务(jeecg-boot-system): 提供用户、角色、权限等基础管理功能
  • 示例服务(jeecg-boot-demo): 展示微服务集成示例
  • 网关服务(jeecg-boot-gateway): 基于Spring Cloud Gateway的统一入口,暴露在9999端口

5. 前端Vue服务

jeecg-vue:
  build:
    context: ./jeecgboot-vue3
  ports:
    - 80:80

基于Vue3的前端项目:

  • 使用Nginx作为Web服务器
  • 映射到主机的80端口
  • 依赖系统服务完成初始化

网络配置

networks:
  jeecg-boot:
    name: jeecg_boot

创建名为jeecg_boot的Docker网络,确保所有服务在同一个网络内,可以通过服务名互相访问。

部署流程建议

  1. 环境准备:

    • 安装Docker和Docker Compose
    • 确保主机3306、6379、8848、9999和80端口未被占用
  2. 启动顺序:

    docker-compose -f docker-compose-cloud.yml up -d jeecg-boot-mysql
    docker-compose -f docker-compose-cloud.yml up -d jeecg-boot-redis
    docker-compose -f docker-compose-cloud.yml up -d jeecg-boot-nacos
    # 等待Nacos完全启动后
    docker-compose -f docker-compose-cloud.yml up -d
    
  3. 验证服务:

    • MySQL: docker exec -it jeecg-boot-mysql mysql -uroot -proot
    • Redis: docker exec -it jeecg-boot-redis redis-cli
    • Nacos: 访问http://localhost:8848/nacos (默认账号nacos/nacos)
    • 网关: 访问http://localhost:9999
    • 前端: 访问http://localhost

高级配置选项

文件中注释掉的部分包含了可选组件:

  • RabbitMQ消息队列
  • Sentinel流量控制
  • XXL-JOB分布式任务调度

如需启用这些服务,只需取消对应注释并重新部署即可。

最佳实践

  1. 生产环境调整:

    • 为MySQL和Redis配置数据卷持久化
    • 调整各服务的资源限制(CPU/内存)
    • 启用健康检查机制
  2. 性能优化:

    • 根据负载调整MySQL连接池参数
    • 配置Redis内存淘汰策略
    • 优化Nacos集群配置
  3. 安全建议:

    • 修改默认密码(MySQL root、Redis)
    • 限制外部访问端口
    • 定期备份关键数据

通过本文的详细解析,开发者可以全面理解JeecgBoot云原生版本的Docker Compose部署架构,并根据实际需求进行定制化调整。这种容器化部署方式极大简化了微服务环境的搭建过程,是快速体验JeecgBoot云原生特性的理想选择。