MindSkip/XZS 项目 Docker 部署指南
2025-07-09 05:12:23作者:董斯意
项目概述
MindSkip/XZS 是一个基于 Java 开发的应用程序,本指南将详细介绍如何使用 Docker 和 Docker Compose 来部署该项目的生产环境。通过容器化部署,可以简化环境配置过程,提高部署效率,并确保环境一致性。
环境准备
在开始部署前,请确保您的系统已安装以下组件:
- Docker 20.10.0 或更高版本
- Docker Compose 2.0.0 或更高版本
Docker Compose 文件解析
服务架构
该 Docker Compose 文件定义了两个主要服务:
- MySQL 数据库服务
- Java 应用服务
MySQL 服务配置
mysql:
image: registry.cn-hangzhou.aliyuncs.com/mindskip/mysql:8.0.33
restart: always
ports:
- 127.0.0.1:3306:3306
privileged: true
container_name: xzs-mysql
environment:
MYSQL_ROOT_PASSWORD: "123456"
TZ: "Asia/Shanghai"
volumes:
- "./sql:/docker-entrypoint-initdb.d/"
关键配置说明:
- 使用 MySQL 8.0.33 版本镜像
- 自动重启策略确保服务高可用
- 仅绑定到本地回环地址(127.0.0.1),增强安全性
- 设置 root 用户密码为 "123456"(生产环境应修改为更复杂的密码)
- 配置时区为亚洲/上海
- 挂载本地
sql
目录到容器初始化目录,用于自动执行 SQL 初始化脚本
Java 应用服务配置
java:
image: registry.cn-hangzhou.aliyuncs.com/mindskip/java:1.8.0
container_name: xzs-java
privileged: true
network_mode: host
restart: always
command:
/bin/bash -c "java -Duser.timezone=Asia/Shanghai -jar -Dspring.profiles.active=prod /usr/local/xzs/release/xzs-3.9.0.jar"
ports:
- 8000:8000
volumes:
- "./release:/usr/local/xzs/release/"
- "./log:/usr/log/xzs/"
关键配置说明:
- 使用 Java 1.8.0 运行环境
- 采用 host 网络模式,减少网络开销
- 自动重启策略确保应用高可用
- 设置时区为亚洲/上海
- 激活 Spring 的 prod 配置文件
- 运行 xzs-3.9.0.jar 应用
- 暴露 8000 端口供外部访问
- 挂载 release 目录存放应用 jar 包
- 挂载 log 目录持久化应用日志
部署步骤
1. 准备部署目录
创建项目目录结构如下:
xzs-deploy/
├── docker-compose.yml
├── release/
│ └── xzs-3.9.0.jar
├── sql/
│ └── (初始化SQL脚本)
└── log/
2. 配置修改建议
-
安全加固:
- 修改 MySQL root 密码为复杂密码
- 考虑为应用创建专用数据库用户
-
资源限制: 可在服务配置中添加资源限制,如:
deploy: resources: limits: cpus: '2' memory: 2G
-
日志管理: 建议配置日志轮转策略,防止日志文件过大
3. 启动服务
在包含 docker-compose.yml 的目录中执行:
docker-compose up -d
4. 验证服务
- 检查容器状态:
docker-compose ps
- 查看应用日志:
docker-compose logs -f java
- 访问应用:
打开浏览器访问
http://服务器IP:8000
常见问题排查
-
端口冲突:
- 确保 3306 和 8000 端口未被占用
- 如需修改端口,更新 ports 配置
-
数据库初始化失败:
- 检查 sql 目录中的脚本是否正确
- 查看 MySQL 容器日志:
docker-compose logs mysql
-
应用启动失败:
- 确认 xzs-3.9.0.jar 文件已放入 release 目录
- 检查 Java 环境是否兼容
维护建议
-
定期备份:
- 数据库数据:定期导出 MySQL 数据
- 应用日志:定期归档 log 目录内容
-
版本升级:
- 更新 release 目录中的 jar 文件
- 修改 docker-compose.yml 中的版本号
- 重新部署:
docker-compose up -d --force-recreate
-
监控配置: 建议添加健康检查配置,如:
healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8000/actuator/health"] interval: 30s timeout: 10s retries: 3
通过本指南,您应该能够顺利完成 MindSkip/XZS 项目的 Docker 化部署。容器化部署不仅简化了环境配置,还提高了应用的可移植性和可维护性,是现代化应用部署的理想选择。