首页
/ MindSkip/XZS 项目 Docker 部署指南

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 文件定义了两个主要服务:

  1. MySQL 数据库服务
  2. 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. 配置修改建议

  1. 安全加固

    • 修改 MySQL root 密码为复杂密码
    • 考虑为应用创建专用数据库用户
  2. 资源限制: 可在服务配置中添加资源限制,如:

    deploy:
        resources:
            limits:
                cpus: '2'
                memory: 2G
    
  3. 日志管理: 建议配置日志轮转策略,防止日志文件过大

3. 启动服务

在包含 docker-compose.yml 的目录中执行:

docker-compose up -d

4. 验证服务

  1. 检查容器状态:
docker-compose ps
  1. 查看应用日志:
docker-compose logs -f java
  1. 访问应用: 打开浏览器访问 http://服务器IP:8000

常见问题排查

  1. 端口冲突

    • 确保 3306 和 8000 端口未被占用
    • 如需修改端口,更新 ports 配置
  2. 数据库初始化失败

    • 检查 sql 目录中的脚本是否正确
    • 查看 MySQL 容器日志:docker-compose logs mysql
  3. 应用启动失败

    • 确认 xzs-3.9.0.jar 文件已放入 release 目录
    • 检查 Java 环境是否兼容

维护建议

  1. 定期备份

    • 数据库数据:定期导出 MySQL 数据
    • 应用日志:定期归档 log 目录内容
  2. 版本升级

    • 更新 release 目录中的 jar 文件
    • 修改 docker-compose.yml 中的版本号
    • 重新部署:docker-compose up -d --force-recreate
  3. 监控配置: 建议添加健康检查配置,如:

    healthcheck:
        test: ["CMD", "curl", "-f", "http://localhost:8000/actuator/health"]
        interval: 30s
        timeout: 10s
        retries: 3
    

通过本指南,您应该能够顺利完成 MindSkip/XZS 项目的 Docker 化部署。容器化部署不仅简化了环境配置,还提高了应用的可移植性和可维护性,是现代化应用部署的理想选择。