Docker 部署 Skill 说明
这个技能专为你的 Spring Boot+ KingbaseES + MinIO 技术栈定制,覆盖从本地开发到生产部署的容器化全流程。
三块核心内容
1. Dockerfile 模板 --- 开箱即用
| 模板 | 用途 |
|---|---|
| Spring Boot 多阶段构建 | Maven 编译 → JRE 运行,镜像瘦身,内置时区 + 健康检查 |
| Vue3 前端容器化 | Node 编译 → Nginx 运行,同样多阶段构建 |
关键设计点:
- 多阶段构建:编译环境和运行环境分离,最终镜像只有 JRE,不携带 Maven/源码
- 健康检查 :
/actuator/health端点让 Docker 和 Compose 能判断应用是否就绪 - 时区处理 :挂载
Asia/Shanghai时区,避免日志时间差 8 小时
2. docker-compose 编排 --- 一键启动全家桶
一套 YAML 拉起四个服务:
┌──────────────────────────────────────────────┐
│ app-net 网络 │
│ │
│ ┌──────────┐ ┌───────────┐ ┌───────────┐ │
│ │ system │ │ kingbase │ │ minio │ │
│ │ :8080 │ │ :54321 │ │ :9000/9001│ │
│ └────┬─────┘ └─────┬─────┘ └─────┬─────┘ │
│ │ │ │ │
│ └──────┬───────┘ │ │
│ │ depends_on │ │
│ ┌──────┴──────────────────────┘ │
│ │ 启动顺序: kingbase就绪 → app启动 │
│ │ minio启动后 → app启动 │
│ └────────────────────────────────────── │
│ ┌──────────┐ │
│ │ xf-ui │ ← nginx 静态服务 :80 │
│ └──────────┘ │
└──────────────────────────────────────────────┘
关键细节:
- 数据持久化 :KingbaseES 和 MinIO 的数据通过
volumes挂载,容器销毁数据不丢 - 启动依赖 :
depends_on+condition: service_healthy确保数据库就绪后才启动应用 - 网络隔离 :所有服务在
app-net内网互通,只暴露必要端口
3. 运维命令速查
日常操作都列好了:
docker-compose up -d --build # 首次/代码变更后重建
docker-compose logs -f app # 实时看应用日志
docker exec -it xf-system sh # 进容器排查
docker-compose down # 停止(数据卷保留)
docker-compose down -v # 完全清理(⚠️ 数据丢失)
使用方式
直接说「Docker 部署,帮我写一个System 项目的 compose 文件」,就会按你项目的实际配置生成可用的编排文件。
文件目录和文件下载
