首页
/ MeEdu在线教育系统Docker Compose部署指南

MeEdu在线教育系统Docker Compose部署指南

2025-07-09 04:56:50作者:卓艾滢Kingsley

概述

本文详细解析MeEdu在线教育系统的Docker Compose部署配置文件,帮助开发者理解如何通过容器化方式快速部署MeEdu系统。MeEdu是一款功能完善的在线教育解决方案,采用Docker部署可以大大简化环境配置和依赖管理。

核心组件分析

MeEdu系统由以下几个核心服务组成:

  1. 主应用服务(meedu):基于MeEdu Light镜像构建,提供Web服务
  2. 数据库服务(mysql):存储系统数据
  3. 缓存服务(redis):提供高速缓存支持
  4. 搜索服务(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

关键点说明:

  1. 使用官方提供的4.9.25版本Light镜像
  2. 通过环境变量配置数据库、缓存、队列等连接信息
  3. 开放了四个端口,分别用于不同服务模块
  4. 依赖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

配置说明:

  1. 使用MySQL 8.1版本
  2. 默认创建名为meedu的数据库
  3. 设置root密码为meeduxyz(生产环境应修改)
  4. 数据持久化到data_mysql卷

Redis缓存服务

redis:
  image: registry.cn-hangzhou.aliyuncs.com/hzbs/redis:7.0.12
  volumes:
    - data_redis:/data

配置说明:

  1. 使用Redis 7.0.12版本
  2. 数据持久化到data_redis卷
  3. 默认未设置密码(生产环境应配置)

MeiliSearch搜索服务

meilisearch:
  image: registry.cn-hangzhou.aliyuncs.com/hzbs/meilisearch:0.24.0
  volumes:
    - data_meilisearch:/meili_data

配置说明:

  1. 使用MeiliSearch 0.24.0版本
  2. 搜索索引数据持久化到data_meilisearch卷

日志配置

x-logging: &default-logging
  driver: "json-file"
  options:
    max-size: "10m"
    max-file: "10"

所有服务共享相同的日志配置:

  1. 使用json-file日志驱动
  2. 单个日志文件最大10MB
  3. 最多保留10个日志文件

部署建议

  1. 环境变量管理:建议使用.env文件管理敏感配置,而非直接在compose文件中硬编码
  2. 安全加固:生产环境应修改默认密码,配置Redis认证
  3. 资源限制:根据实际负载为各服务配置合理的资源限制
  4. 备份策略:定期备份持久化卷数据
  5. 版本升级:更新镜像版本时注意检查各组件兼容性

常见问题

  1. 端口冲突:如果默认端口已被占用,可修改ports映射
  2. 初始化失败:检查各服务启动顺序和依赖关系
  3. 性能问题:可根据需要调整MySQL和Redis配置参数
  4. 数据迁移:通过持久化卷实现数据迁移和恢复

通过这份Docker Compose配置,开发者可以快速搭建一套完整的MeEdu在线教育系统环境,便于开发测试和生产部署。