首页
/ Blossom 项目 Docker 部署完全指南

Blossom 项目 Docker 部署完全指南

2025-07-09 06:15:15作者:董宙帆

前言

Blossom 是一款基于 Java 开发的现代化应用,本文将详细介绍如何使用 Docker 容器化技术来部署 Blossom 项目。Docker 部署方式具有环境隔离、快速部署、易于维护等优势,是现代化应用部署的首选方案。

环境准备

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

  1. Docker 引擎(建议使用最新稳定版)
  2. Docker Compose(如使用 compose 部署方式)

部署方案选择

Blossom 项目提供两种 Docker 部署方式:

  1. 独立容器部署:分别部署 MySQL 和 Blossom 应用容器
  2. Docker Compose 集成部署:使用 compose 文件一键部署整个应用栈

方案一:独立容器部署

1. MySQL 数据库部署

首先部署 MySQL 8.0 数据库容器:

docker run -d \
  --name mysql \
  -e MYSQL_ROOT_PASSWORD=jasmine888 \
  -p 3306:3306 \
  -v /path/to/mysql/data:/var/lib/mysql \
  -v /path/to/mysql/log:/var/log/mysql \
  mysql:8.0.31

参数说明:

  • -v 参数用于数据持久化,防止容器重启后数据丢失
  • MYSQL_ROOT_PASSWORD 设置数据库 root 用户密码

2. 创建数据库

连接到 MySQL 并创建 Blossom 应用所需的数据库:

CREATE DATABASE `blossom` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;

3. 部署 Blossom 应用

拉取最新版 Blossom 镜像:

docker pull jasminexzzz/blossom:latest

启动应用容器:

docker run -d \
  --name blossom-backend \
  -p 9999:9999 \
  -v /path/to/images:/home/bl/ \
  jasminexzzz/blossom:latest \
  --spring.datasource.url="jdbc:mysql://数据库IP:3306/blossom?useUnicode=true&characterEncoding=utf-8&allowPublicKeyRetrieval=true&allowMultiQueries=true&useSSL=false&&serverTimezone=GMT%2B8" \
  --spring.datasource.username=root \
  --spring.datasource.password=数据库密码

关键配置说明:

  • -v 挂载图片存储目录,确保数据持久化
  • JDBC 连接字符串中的时区设置为 GMT+8(北京时间)

方案二:Docker Compose 集成部署

对于生产环境,推荐使用 Docker Compose 方式部署,它能够更好地管理容器间的依赖关系。

1. 准备 compose 文件

创建 docker-compose.yml 文件,内容如下:

version: "3.8"

networks:
  blossomnet:
    driver: bridge

services:
  blossom:
    image: jasminexzzz/blossom:latest
    container_name: blossom-backend
    volumes:
      - /path/to/images:/home/bl/
    environment:
      SPRING_DATASOURCE_URL: jdbc:mysql://blmysql:3306/blossom?useUnicode=true&characterEncoding=utf-8&allowPublicKeyRetrieval=true&allowMultiQueries=true&useSSL=false&&serverTimezone=GMT%2B8
      SPRING_DATASOURCE_USERNAME: root
      SPRING_DATASOURCE_PASSWORD: jasmine888
    ports:
      - "9999:9999"
    networks:
      - blossomnet
    depends_on:
      blmysql:
        condition: service_healthy

  blmysql:
    image: mysql:8.0.31
    container_name: blossom-mysql
    volumes:
      - /path/to/mysql/data:/var/lib/mysql
      - /path/to/mysql/log:/var/log/mysql
    environment:
      MYSQL_DATABASE: blossom
      MYSQL_ROOT_PASSWORD: jasmine888
    networks:
      - blossomnet
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]

2. 启动服务

docker-compose up -d

3. 服务健康检查

Compose 文件中已配置健康检查:

  • MySQL 服务启动后会进行连接测试
  • Blossom 应用会在 MySQL 就绪后启动

配置优化建议

  1. 资源限制:在生产环境中,建议为容器配置 CPU 和内存限制
  2. 日志收集:配置日志驱动,便于集中管理日志
  3. 备份策略:定期备份挂载的 MySQL 数据目录
  4. 网络隔离:考虑使用自定义网络提高安全性

常见问题解决

  1. 数据库连接失败

    • 检查 MySQL 容器是否正常运行
    • 验证连接字符串中的 IP 和端口是否正确
    • 确认防火墙设置允许容器间通信
  2. 图片上传失败

    • 检查挂载目录的权限设置
    • 确保挂载目录存在且可写
  3. 时区问题

    • 确保数据库和应用的时区设置一致
    • 建议所有容器使用 Asia/Shanghai 时区

结语

通过 Docker 部署 Blossom 项目,您可以快速搭建一套稳定可靠的应用环境。本文介绍的两种部署方案各有优势,您可以根据实际需求选择合适的方案。对于开发测试环境,独立容器部署更为灵活;而对于生产环境,Docker Compose 方案提供了更好的可管理性。