首页
/ Jeecg-Boot项目Docker Compose部署指南

Jeecg-Boot项目Docker Compose部署指南

2025-07-05 02:04:15作者:蔡怀权

概述

Jeecg-Boot是一个基于Spring Boot的低代码开发平台,本文主要介绍如何使用Docker Compose快速部署Jeecg-Boot项目及其依赖服务。通过Docker Compose可以一键启动项目所需的所有服务,包括MySQL数据库、Redis缓存以及Jeecg-Boot系统本身。

环境准备

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

  • Docker 18.09或更高版本
  • Docker Compose 1.24或更高版本

服务配置详解

1. MySQL数据库服务

jeecg-boot-mysql:
  build:
    context: ./db
  environment:
    MYSQL_ROOT_PASSWORD: root
    MYSQL_ROOT_HOST: '%'
    TZ: Asia/Shanghai
  restart: always
  container_name: jeecg-boot-mysql
  image: jeecg-boot-mysql
  command:
    --character-set-server=utf8mb4
    --collation-server=utf8mb4_general_ci
    --explicit_defaults_for_timestamp=true
    --lower_case_table_names=1
    --max_allowed_packet=128M
    --default-authentication-plugin=caching_sha2_password
  ports:
    - 3306:3306
  networks:
    - jeecg-boot

关键配置说明:

  • 使用自定义构建的MySQL镜像(基于./db目录中的Dockerfile)
  • 设置root用户密码为root,并允许所有主机连接
  • 配置时区为Asia/Shanghai
  • 强制使用UTF8MB4字符集,支持完整的Unicode字符(包括emoji)
  • 表名大小写不敏感(适合跨平台部署)
  • 设置最大数据包为128MB
  • 使用caching_sha2_password认证插件(MySQL 8.0默认)

2. Redis缓存服务

jeecg-boot-redis:
  image: redis:5.0
  ports:
    - 6379:6379
  restart: always
  hostname: jeecg-boot-redis
  container_name: jeecg-boot-redis
  networks:
    - jeecg-boot

关键配置说明:

  • 使用官方Redis 5.0镜像
  • 暴露标准Redis端口6379
  • 配置自动重启策略
  • 设置容器主机名和名称

3. Jeecg-Boot系统服务

jeecg-boot-system:
  build:
    context: ./jeecg-module-system/jeecg-system-start
  restart: on-failure
  depends_on:
    - jeecg-boot-mysql
    - jeecg-boot-redis
  container_name: jeecg-boot-system
  image: jeecg-boot-system
  hostname: jeecg-boot-system
  ports:
    - 8080:8080
  networks:
    - jeecg-boot

关键配置说明:

  • 从项目目录构建系统镜像
  • 配置依赖服务(MySQL和Redis)
  • 暴露8080端口供外部访问
  • 使用on-failure重启策略(仅在非正常退出时重启)

网络配置

networks:
  jeecg-boot:
    name: jeecg_boot

所有服务都连接到名为jeecg_boot的自定义网络,这使得容器间可以通过服务名相互访问,同时与外部网络隔离。

部署步骤

  1. 确保已克隆项目代码并进入项目根目录
  2. 执行以下命令启动所有服务:
    docker-compose up -d
    
  3. 等待所有容器启动完成(可使用docker-compose ps查看状态)
  4. 访问http://localhost:8080即可使用Jeecg-Boot系统

常见问题解决

  1. 端口冲突:如果3306、6379或8080端口已被占用,可在docker-compose.yml中修改端口映射(如"3307:3306")

  2. MySQL启动失败:检查./db目录是否存在且包含正确的Dockerfile

  3. 系统服务无法连接数据库:确保MySQL服务已完全启动(可能需要等待几秒钟)

  4. 时区问题:所有服务都已配置为Asia/Shanghai时区,如需修改可调整TZ环境变量

维护建议

  1. 定期备份MySQL数据(可通过docker exec导出或挂载数据卷)
  2. 监控容器资源使用情况(CPU、内存等)
  3. 生产环境建议修改默认密码并配置适当的安全策略

通过本文介绍的Docker Compose部署方式,您可以快速搭建Jeecg-Boot开发或测试环境,所有服务都容器化运行,便于管理和迁移。