基于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文件定义了两个主要服务:
-
MySQL服务
- 使用官方MySQL 8.0.33镜像
- 配置了自动重启策略
- 端口映射到主机的3306端口(仅限本地访问)
- 设置root用户密码为"123456"
- 时区配置为Asia/Shanghai
- 挂载sql目录到容器的初始化脚本目录
-
Java服务
- 使用Java 1.8.0运行环境
- 采用host网络模式
- 配置了自动重启策略
- 运行xzs-3.9.0.jar应用
- 端口映射到主机的8000端口
- 挂载release和log目录
关键技术点
-
网络配置
- MySQL服务使用默认桥接网络
- Java服务采用host网络模式,可直接访问本地MySQL服务
-
数据持久化
- MySQL初始化脚本通过volumes挂载实现
- Java应用的日志文件也通过volumes挂载到宿主机
-
时区处理
- 两个服务都明确配置了Asia/Shanghai时区
- Java服务额外通过-Duser.timezone参数确保时区一致性
部署步骤
-
准备目录结构 在项目目录下创建以下子目录:
- sql/:存放MySQL初始化脚本
- release/:存放Java应用jar包
- log/:存放应用日志
-
放置必要文件
- 将xzs-3.9.0.jar放入release目录
- 将数据库初始化SQL文件放入sql目录
-
启动服务 执行以下命令启动所有服务:
docker-compose up -d
-
验证服务
- 检查MySQL是否正常运行:
docker logs xzs-mysql
- 检查Java应用是否正常运行:
docker logs xzs-java
- 检查MySQL是否正常运行:
安全建议
-
修改默认密码 生产环境中务必修改MYSQL_ROOT_PASSWORD环境变量的值
-
网络隔离 考虑使用自定义网络而非host模式,增强安全性
-
权限控制 可以创建专用MySQL用户而非使用root账户
常见问题解决
-
端口冲突
- 如果3306或8000端口被占用,可修改ports配置
-
时区不一致
- 确保宿主机时区与容器一致
- 检查应用日志中的时间戳是否正确
-
初始化失败
- 检查sql目录下的文件权限
- 确认SQL语法与MySQL 8.0兼容
性能调优
-
MySQL配置 可根据实际需求调整MySQL的内存参数
-
Java内存 可在java命令中添加-Xmx等参数调整JVM内存
-
日志轮转 建议配置日志轮转策略,避免日志文件过大
维护操作
-
停止服务
docker-compose down
-
更新应用
- 替换release目录下的jar包
- 重启Java服务
-
备份数据 定期备份挂载的MySQL数据目录
通过以上配置和步骤,您可以轻松部署和管理xzs-mysql项目。该方案具有良好的可移植性和可维护性,适合开发和测试环境使用。