首页
/ Mall4j项目Docker Compose部署指南

Mall4j项目Docker Compose部署指南

2025-07-08 06:22:30作者:董灵辛Dennis

概述

Mall4j是一个基于Java开发的电商系统,本文主要介绍如何使用Docker Compose快速部署Mall4j项目的完整环境。通过Docker容器化技术,我们可以轻松搭建包含MySQL数据库、Redis缓存以及前后端服务的完整电商系统。

环境准备

在开始部署前,请确保您的系统已安装以下组件:

  • Docker 18.06+
  • Docker Compose 1.25+

服务架构解析

Mall4j的Docker Compose配置定义了四个核心服务:

  1. MySQL数据库服务:存储系统所有业务数据
  2. Redis缓存服务:提供高速缓存支持
  3. Admin后台服务:管理系统后台
  4. API接口服务:提供前端调用的API接口

详细配置说明

MySQL服务配置

mall4j-mysql:
  build:
    context: ./
    dockerfile: ./db/Dockerfile
  environment:
    MYSQL_ROOT_PASSWORD: root
  restart: always
  container_name: mall4j-mysql
  image: mall4j-mysql
  ports:
    - 3306:3306
  volumes:
    - ./mall4j-mysql:/var/lib/mysql
  command: --lower_case_table_names=1

关键配置点:

  • 使用自定义Dockerfile构建MySQL镜像
  • 设置root用户密码为"root"
  • 数据持久化到本地./mall4j-mysql目录
  • lower_case_table_names=1参数确保表名大小写不敏感
  • 默认暴露3306端口

Redis服务配置

mall4j-redis:
  image: redis:5.0.4
  restart: always
  container_name: mall4j-redis
  ports:
    - 6379:6379

关键配置点:

  • 使用官方Redis 5.0.4镜像
  • 默认暴露6379端口
  • 自动重启策略确保服务高可用

Admin后台服务配置

mall4j-admin:
  build:
    context: ./
    dockerfile: ./yami-shop-admin/Dockerfile
  restart: always
  container_name: mall4j-admin
  environment:
    - REDIS_HOST=mall4j-redis
    - REDIS_PORT=6379
    - REDIS_DATABASE=1
  image: mall4j-admin
  ports:
    - 8085:8085
  depends_on:
    - mall4j-redis
    - mall4j-mysql
  links:
    - "mall4j-redis"
    - "mall4j-mysql"

关键配置点:

  • 使用自定义Dockerfile构建后台服务
  • 配置Redis连接信息
  • 暴露8085端口供外部访问
  • 依赖MySQL和Redis服务
  • 通过links建立服务间网络连接

API接口服务配置

mall4j-api:
  build:
    context: ./
    dockerfile: ./yami-shop-api/Dockerfile
  restart: always
  container_name: mall4j-api
  environment:
    - REDIS_HOST=mall4j-redis
    - REDIS_PORT=6379
    - REDIS_DATABASE=1
  image: mall4j-api
  ports:
    - 8086:8086
  depends_on:
    - mall4j-redis
    - mall4j-mysql
  links:
    - "mall4j-redis"
    - "mall4j-mysql"

关键配置点:

  • 使用自定义Dockerfile构建API服务
  • 配置与后台服务相同的Redis连接
  • 暴露8086端口供前端调用
  • 同样依赖MySQL和Redis服务

部署步骤

  1. 确保Docker和Docker Compose已正确安装
  2. 将docker-compose.yml文件放置到项目根目录
  3. 在终端中执行以下命令:
docker-compose up -d
  1. 等待所有服务启动完成
  2. 验证服务是否正常运行:
    • 访问http://localhost:8085查看后台服务
    • 访问http://localhost:8086测试API服务

常见问题解决

  1. 端口冲突:如果3306、6379、8085或8086端口已被占用,请修改docker-compose.yml中的端口映射
  2. 构建失败:确保项目目录结构正确,所有Dockerfile文件存在
  3. 数据库初始化问题:检查MySQL数据目录权限,确保Docker有写入权限
  4. 服务启动顺序:虽然配置了depends_on,但服务完全就绪可能需要额外等待时间

生产环境建议

  1. 修改默认的root密码为更复杂的密码
  2. 配置MySQL和Redis的持久化策略
  3. 考虑添加Nginx作为反向代理
  4. 设置适当的资源限制(CPU、内存)
  5. 配置日志轮转和监控

总结

通过本文介绍的Docker Compose配置,开发者可以快速搭建Mall4j项目的完整运行环境。这种容器化的部署方式不仅简化了环境配置过程,还提高了开发、测试和生产环境的一致性。对于电商系统这类复杂应用,使用Docker Compose管理多服务依赖关系是一种高效可靠的解决方案。