JeecgBoot项目Docker Compose部署指南
2025-07-05 02:02:16作者:齐冠琰
概述
JeecgBoot是一个基于Spring Boot和Vue.js的企业级快速开发平台,采用前后端分离架构。本文将从技术角度详细解析JeecgBoot项目中的docker-compose.yml文件,帮助开发者理解其容器化部署方案。
文件结构解析
该docker-compose.yml文件采用version 2格式定义,包含四个核心服务组件:
- MySQL数据库服务
- Redis缓存服务
- 后端系统服务
- 前端Vue服务
服务详解
1. MySQL数据库服务 (jeecg-boot-mysql)
MySQL服务是JeecgBoot的数据存储核心,配置特点包括:
- 构建方式:使用项目目录下的
./jeecg-boot/db
作为构建上下文 - 环境变量:
- 设置root密码为root
- 允许所有主机连接(root@%)
- 时区设置为亚洲/上海
- MySQL参数:
- 使用utf8mb4字符集和排序规则,支持完整Unicode字符
- 表名大小写不敏感(lower_case_table_names=1)
- 增大max_allowed_packet至128MB
- 使用caching_sha2_password认证插件
- 网络:加入jeecg-boot专用网络
- 端口映射:3306端口对外暴露
2. Redis缓存服务 (jeecg-boot-redis)
Redis服务为系统提供缓存支持:
- 镜像来源:使用阿里云镜像仓库提供的Redis 5.0
- 基础配置:
- 6379端口对外暴露
- 自动重启策略
- 指定主机名和容器名
- 网络:同样接入jeecg-boot网络
3. 后端系统服务 (jeecg-boot-system)
Spring Boot后端核心服务:
- 构建方式:基于
./jeecg-boot/jeecg-module-system/jeecg-system-start
构建 - 依赖关系:明确依赖MySQL和Redis服务
- 网络配置:接入同一网络确保服务间通信
- 端口映射:8080端口对外暴露
- 重启策略:仅在失败时重启
4. 前端Vue服务 (jeecg-vue)
Vue3前端服务:
- 构建方式:基于
./jeecgboot-vue3
目录构建 - 依赖关系:依赖后端系统服务
- 网络配置:接入同一网络
- 端口映射:80端口对外暴露,直接提供Web访问
网络配置
文件定义了一个名为jeecg_boot
的自定义网络,所有服务都接入该网络,实现:
- 服务间通过容器名直接通信
- 网络隔离,提高安全性
- 统一的网络环境配置
部署实践建议
-
环境准备:
- 确保Docker和Docker Compose已安装
- 检查端口3306、6379、8080、80是否可用
-
启动顺序:
- 数据库和Redis服务会首先启动
- 后端服务等待数据库就绪
- 前端服务最后启动
-
自定义配置:
- 生产环境应修改MySQL root密码
- 可调整各服务的资源限制
- 考虑添加数据卷持久化重要数据
-
监控与维护:
- 使用
docker-compose logs
查看服务日志 - 定期备份MySQL数据
- 监控各服务资源使用情况
- 使用
常见问题处理
- 端口冲突:修改ports映射中的主机端口
- 构建失败:检查各构建上下文目录是否存在
- 服务启动顺序问题:确保depends_on配置正确
- 中文乱码:确认MySQL字符集配置生效
通过这份docker-compose.yml文件,JeecgBoot项目实现了开箱即用的容器化部署方案,大大简化了开发环境的搭建和部署流程。理解这些配置有助于开发者根据实际需求进行定制化调整。