Docker部署文档

Docker 部署文档

⚠️ 官方暂未提供 Docker 镜像 只能本地构建镜像**

  • 目前不支持ARM 架构服务器
  • 新手用户:推荐使用宝塔面板部署,更简单稳定
  • 有 Docker 使用经验的用户**:可参考本文自行构建并部署
  • 强烈建议:推荐做好数据备份,Docker 操作容易导致数据丢失!

阅读本文默认你已具备以下基础: Java / Maven / Node.js / pnpm / Docker

一、部署方式选择说明(先看这里)

无论你选择哪种部署方式,都****必须先完成镜像构建

推荐顺序

  1. 先构建后端 & 前端镜像(必做)
  2. 推荐方式:使用 docker-compose 一键运行
  3. 已有 MySQL / Redis:使用 docker run 或改造 docker-compose
  4. 其他高级 / 常见问题

二、构建 Docker 镜像(必做)

2.1 构建后端镜像(tduck-x-platform)

1️⃣ 打包 Jar

**确保已安装 **JDK 8 / Maven,进入后端项目根目录执行:

mvn clean package -DskipTests

构建完成后生成:

tduck-api/target/tduck-api.jar

2️⃣ 构建后端镜像

**进入 **tduck-api 目录(目录下已提供 Dockerfile):

cd tduck-api
docker build -t tduck-x-api:v5 .

2.2 构建前端镜像(tduck-x-front)

1️⃣ 构建前端静态文件

**进入前端项目根目录,确保已安装 **Node.js / pnpm

pnpm install
pnpm build

构建完成后会生成:

dist/

2️⃣ 修改 Nginx 配置(非 docker-compose 必看)

**如果 **不使用 docker-compose,需要修改:

nginx.default.conf

将其中的后端地址:

tduck-api

替换为你能访问的后端地址,例如:

http://192.168.101.11:8080

3️⃣ 构建前端镜像

docker build -t tduck-x-front:v5 .

三、推荐方式:docker-compose 一键运行(最省事)

适合场景

  • 没有单独部署 MySQL / Redis
  • 本地测试 / 私有部署
  • 希望最快跑起来

使用方式

  1. **进入后端项目 **tduck-x-platform 根目录
  2. **进入 **docker 目录
  3. 复制 sql
 cp doc/tduck-x.sql docker/init-db/
  1. 执行下面命令 ps: 使用--pull never的作用是某些版本的docker-compose会自动拉取镜像,但是仓库里面没有该镜像,可能会报错 所以这里手动拉去 redis 和 mysql,然后强制不拉取镜像
docker pull redis:5.0.4
docker pull mysql:8.0.28
docker compose up -d --pull never

docker-compose 会自动启动

  • MySQL
  • Redis
  • 后端服务
  • 前端服务

启动完成后,直接访问服务器 IP:8888 即可。 默认账号密码: admin/12345678

⚠️ 注意

  • 镜像构建步骤不可省略
  • docker-compose 只负责“运行与编排”

四、已有 MySQL / Redis 的部署方式(进阶 可选)

**如果你 **已经在宿主机或其他服务器部署了 MySQL / Redis,有两种方式可选。

方式一:直接使用 docker run(简单直观)

启动后端容器

docker run -d \
--name tduck \
-p 8080:8080 \
-e SPRING_DATASOURCE_URL=jdbc:mysql://192.168.1.100:3306/tduck?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai \
-e SPRING_DATASOURCE_USERNAME=root \
-e SPRING_DATASOURCE_PASSWORD=root \
-e SPRING_REDIS_HOST=192.168.1.100 \
-e SPRING_REDIS_PORT=6379 \
tduck-x-platform:v5

启动前端容器

docker run -d \
--name tduck-x-front \
-p 80:80 \
tduck-x-front:v5

方式二:改造 docker-compose(推荐进阶方案)

更推荐:方便维护、重启、升级

操作思路

  1. **打开 **docker/docker-compose.yml
  2. 删除或注释掉 MySQL / Redis 服务
  3. 修改后端 service 中的环境变量:
environment:
  SPRING_DATASOURCE_URL: jdbc:mysql://192.168.1.100:3306/tduck
  SPRING_DATASOURCE_USERNAME: root
  SPRING_DATASOURCE_PASSWORD: root
  SPRING_REDIS_HOST: 192.168.1.100
  SPRING_REDIS_PORT: 6379
  1. 启动:
docker compose up -d

**📌 这种方式兼顾 **docker-compose 管理优势 + 自有基础设施

五、其他说明 & 常见问题

配置文件上传为本地存储

** 默认为/application/static/upload 目录挂载到外部了,**http://localhost:8888/file/ 提供访问

六、部署方式建议总结

场景 推荐方式
新手 / 生产 宝塔部署
快速体验 docker-compose
已有 MySQL / Redis 改造 docker-compose
强控制 / 脚本化 docker run