MeEdu在线教育系统Docker Compose部署指南
2025-07-09 04:56:50作者:卓艾滢Kingsley
概述
本文详细解析MeEdu在线教育系统的Docker Compose部署配置文件,帮助开发者理解如何通过容器化方式快速部署MeEdu系统。MeEdu是一款功能完善的在线教育解决方案,采用Docker部署可以大大简化环境配置和依赖管理。
核心组件分析
MeEdu系统由以下几个核心服务组成:
- 主应用服务(meedu):基于MeEdu Light镜像构建,提供Web服务
- 数据库服务(mysql):存储系统数据
- 缓存服务(redis):提供高速缓存支持
- 搜索服务(meilisearch):提供全文搜索功能
网络与存储配置
网络配置
networks:
meedu-network:
driver: bridge
系统使用桥接网络模式创建了一个名为meedu-network
的专用网络,确保各服务间可以安全通信,同时与外部网络隔离。
数据持久化
volumes:
data_mysql:
data_redis:
data_meilisearch:
配置了三个持久化卷,分别用于存储MySQL数据、Redis数据和MeiliSearch索引数据,确保容器重启后数据不会丢失。
服务详细配置
MeEdu主服务
meedu:
image: registry.cn-hangzhou.aliyuncs.com/meedu/light:4.9.25
restart: always
environment:
- DB_HOST=${DB_HOST}
- DB_PORT=${DB_PORT}
- DB_DATABASE=${DB_DATABASE}
- DB_USERNAME=${DB_USERNAME}
- DB_PASSWORD=${DB_PASSWORD}
- REDIS_HOST=${REDIS_HOST}
- REDIS_PASSWORD=${REDIS_PASSWORD}
- REDIS_PORT=${REDIS_PORT}
- QUEUE_DRIVER=${QUEUE_DRIVER}
- APP_KEY=${APP_KEY}
- JWT_SECRET=${JWT_SECRET}
- MEILISEARCH_HOST=${MEILISEARCH_HOST}
- MEILISEARCH_KEY=${MEILISEARCH_KEY}
ports:
- 8000:8000
- 8100:8100
- 8200:8200
- 8300:8300
关键点说明:
- 使用官方提供的4.9.25版本Light镜像
- 通过环境变量配置数据库、缓存、队列等连接信息
- 开放了四个端口,分别用于不同服务模块
- 依赖MySQL和Redis服务启动
MySQL数据库服务
mysql:
image: registry.cn-hangzhou.aliyuncs.com/hzbs/mysql:8.1
environment:
- MYSQL_DATABASE=meedu
- MYSQL_ROOT_PASSWORD=meeduxyz
volumes:
- data_mysql:/var/lib/mysql
配置说明:
- 使用MySQL 8.1版本
- 默认创建名为meedu的数据库
- 设置root密码为meeduxyz(生产环境应修改)
- 数据持久化到data_mysql卷
Redis缓存服务
redis:
image: registry.cn-hangzhou.aliyuncs.com/hzbs/redis:7.0.12
volumes:
- data_redis:/data
配置说明:
- 使用Redis 7.0.12版本
- 数据持久化到data_redis卷
- 默认未设置密码(生产环境应配置)
MeiliSearch搜索服务
meilisearch:
image: registry.cn-hangzhou.aliyuncs.com/hzbs/meilisearch:0.24.0
volumes:
- data_meilisearch:/meili_data
配置说明:
- 使用MeiliSearch 0.24.0版本
- 搜索索引数据持久化到data_meilisearch卷
日志配置
x-logging: &default-logging
driver: "json-file"
options:
max-size: "10m"
max-file: "10"
所有服务共享相同的日志配置:
- 使用json-file日志驱动
- 单个日志文件最大10MB
- 最多保留10个日志文件
部署建议
- 环境变量管理:建议使用.env文件管理敏感配置,而非直接在compose文件中硬编码
- 安全加固:生产环境应修改默认密码,配置Redis认证
- 资源限制:根据实际负载为各服务配置合理的资源限制
- 备份策略:定期备份持久化卷数据
- 版本升级:更新镜像版本时注意检查各组件兼容性
常见问题
- 端口冲突:如果默认端口已被占用,可修改ports映射
- 初始化失败:检查各服务启动顺序和依赖关系
- 性能问题:可根据需要调整MySQL和Redis配置参数
- 数据迁移:通过持久化卷实现数据迁移和恢复
通过这份Docker Compose配置,开发者可以快速搭建一套完整的MeEdu在线教育系统环境,便于开发测试和生产部署。