Docker部署文档
Docker 部署文档
⚠️ 官方暂未提供 Docker 镜像 只能本地构建镜像**
- 目前不支持ARM 架构服务器
- 新手用户:推荐使用宝塔面板部署,更简单稳定
- 有 Docker 使用经验的用户**:可参考本文自行构建并部署
- 强烈建议:推荐做好数据备份,Docker 操作容易导致数据丢失!
阅读本文默认你已具备以下基础: Java / Maven / Node.js / pnpm / Docker
一、部署方式选择说明(先看这里)
无论你选择哪种部署方式,都****必须先完成镜像构建。
推荐顺序
- 先构建后端 & 前端镜像(必做)
- 推荐方式:使用 docker-compose 一键运行
- 已有 MySQL / Redis:使用 docker run 或改造 docker-compose
- 其他高级 / 常见问题
二、构建 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
- 本地测试 / 私有部署
- 希望最快跑起来
使用方式
- **进入后端项目 **
tduck-x-platform根目录 - **进入 **
docker目录 - 复制 sql
cp doc/tduck-x.sql docker/init-db/
- 执行下面命令 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(推荐进阶方案)
更推荐:方便维护、重启、升级
操作思路
- **打开 **
docker/docker-compose.yml - 删除或注释掉 MySQL / Redis 服务
- 修改后端 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
- 启动:
docker compose up -d
**📌 这种方式兼顾 **docker-compose 管理优势 + 自有基础设施
五、其他说明 & 常见问题
配置文件上传为本地存储
** 默认为/application/static/upload 目录挂载到外部了,**http://localhost:8888/file/ 提供访问
六、部署方式建议总结
| 场景 | 推荐方式 |
|---|---|
| 新手 / 生产 | 宝塔部署 |
| 快速体验 | docker-compose |
| 已有 MySQL / Redis | 改造 docker-compose |
| 强控制 / 脚本化 | docker run |