首页
/ 基于Docker Compose的xzs-mysql项目部署指南

基于Docker Compose的xzs-mysql项目部署指南

2025-07-09 06:59:59作者:郦嵘贵Just

项目概述

xzs-mysql是一个基于MySQL和Java技术栈的应用项目,采用Docker容器化部署方案。该项目通过Docker Compose编排工具实现了MySQL数据库和Java应用的协同部署,为开发者提供了一键式部署解决方案。

环境准备

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

  • Docker引擎(建议版本20.10+)
  • Docker Compose(建议版本2.0+)

配置文件解析

服务定义

该docker-compose.yml文件定义了两个主要服务:

  1. MySQL服务

    • 使用官方MySQL 8.0.33镜像
    • 配置了自动重启策略
    • 端口映射到主机的3306端口(仅限本地访问)
    • 设置root用户密码为"123456"
    • 时区配置为Asia/Shanghai
    • 挂载sql目录到容器的初始化脚本目录
  2. Java服务

    • 使用Java 1.8.0运行环境
    • 采用host网络模式
    • 配置了自动重启策略
    • 运行xzs-3.9.0.jar应用
    • 端口映射到主机的8000端口
    • 挂载release和log目录

关键技术点

  1. 网络配置

    • MySQL服务使用默认桥接网络
    • Java服务采用host网络模式,可直接访问本地MySQL服务
  2. 数据持久化

    • MySQL初始化脚本通过volumes挂载实现
    • Java应用的日志文件也通过volumes挂载到宿主机
  3. 时区处理

    • 两个服务都明确配置了Asia/Shanghai时区
    • Java服务额外通过-Duser.timezone参数确保时区一致性

部署步骤

  1. 准备目录结构 在项目目录下创建以下子目录:

    • sql/:存放MySQL初始化脚本
    • release/:存放Java应用jar包
    • log/:存放应用日志
  2. 放置必要文件

    • 将xzs-3.9.0.jar放入release目录
    • 将数据库初始化SQL文件放入sql目录
  3. 启动服务 执行以下命令启动所有服务:

    docker-compose up -d
    
  4. 验证服务

    • 检查MySQL是否正常运行:
      docker logs xzs-mysql
      
    • 检查Java应用是否正常运行:
      docker logs xzs-java
      

安全建议

  1. 修改默认密码 生产环境中务必修改MYSQL_ROOT_PASSWORD环境变量的值

  2. 网络隔离 考虑使用自定义网络而非host模式,增强安全性

  3. 权限控制 可以创建专用MySQL用户而非使用root账户

常见问题解决

  1. 端口冲突

    • 如果3306或8000端口被占用,可修改ports配置
  2. 时区不一致

    • 确保宿主机时区与容器一致
    • 检查应用日志中的时间戳是否正确
  3. 初始化失败

    • 检查sql目录下的文件权限
    • 确认SQL语法与MySQL 8.0兼容

性能调优

  1. MySQL配置 可根据实际需求调整MySQL的内存参数

  2. Java内存 可在java命令中添加-Xmx等参数调整JVM内存

  3. 日志轮转 建议配置日志轮转策略,避免日志文件过大

维护操作

  1. 停止服务

    docker-compose down
    
  2. 更新应用

    • 替换release目录下的jar包
    • 重启Java服务
  3. 备份数据 定期备份挂载的MySQL数据目录

通过以上配置和步骤,您可以轻松部署和管理xzs-mysql项目。该方案具有良好的可移植性和可维护性,适合开发和测试环境使用。