MangTool Docker 部署
前后端单容器部署:拉代码后进入 docker 目录,执行启动脚本即可。
环境要求
- Docker
- Docker Compose(v2 推荐:
docker compose)
部署步骤
1. 拉取代码
git clone <仓库地址>
cd MyTool
2. 启动服务
Linux / macOS:
cd docker
chmod +x start.sh
./start.sh
Windows:
在资源管理器中进入 docker 目录,双击运行 start.bat;或在终端执行:
cd docker
start.bat
或直接使用 docker compose:
cd docker
docker compose up -d --build
3. 访问应用
浏览器打开:http://localhost:8080
前端与后端由同一服务提供,无需单独配置 API 地址。
常用命令
| 操作 | 命令 |
|---|---|
| 后台启动 | docker compose up -d --build |
| 查看日志 | docker compose logs -f |
| 停止并删除 | docker compose down |
| 仅重新构建 | docker compose build --no-cache |
| 查看状态 | docker compose ps |
| 健康检查 | docker compose exec mangtool wget -q -O- http://localhost:8080/api/health |
端口与数据
- 端口:宿主机
8080映射容器8080,可在docker-compose.yml中修改左侧端口,例如"8888:8080"。 - 数据:工具读写路径在容器内;若需挂载宿主机目录(如音乐库、输入输出目录),在
docker-compose.yml中取消volumes注释并改为实际路径。
构建说明
- Dockerfile:多阶段构建
- 使用 Node 20 构建前端(Vite),产出到
dist - 使用 Maven + JDK 8 构建后端,并将前端
dist拷贝到src/main/resources/static - 运行阶段使用
eclipse-temurin:8-jre-alpine,仅运行打包好的 Spring Boot jar - 内置健康检查(每 30 秒检查
/api/health端点)
- 使用 Node 20 构建前端(Vite),产出到
- 生产环境前端 API/WebSocket 使用相对路径,与后端同源,无需再配 CORS。
- 已配置
.dockerignore优化构建上下文,加快构建速度。 - Maven 镜像:已配置使用阿里云 Maven 镜像加速依赖下载,解决网络问题。
故障排查
Maven 依赖下载失败
如果构建时遇到 Maven 依赖下载失败(如 handshake_failure 或网络超时):
- 检查网络连接:确保 Docker 容器可以访问外网
- 使用国内镜像:已默认配置阿里云镜像,如仍有问题可修改
docker/maven-settings.xml - 清理缓存重建:
docker compose down docker compose build --no-cache docker compose up -d
端口被占用
如果 8080 端口已被占用,修改 docker-compose.yml 中的端口映射:
ports:
- "8888:8080" # 改为其他端口
查看详细日志
# 查看构建日志
docker compose build --progress=plain
# 查看运行日志
docker compose logs -f mangtool