Template
Add one-click Navidrome ingestion workflow
This commit is contained in:
+1
-1
@@ -50,7 +50,7 @@ RUN mvn clean package -DskipTests -B -s /root/.m2/settings.xml
|
||||
FROM eclipse-temurin:8-jre-alpine
|
||||
WORKDIR /app
|
||||
|
||||
RUN apk add --no-cache tzdata wget \
|
||||
RUN apk add --no-cache tzdata wget ffmpeg \
|
||||
&& cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
|
||||
&& echo "Asia/Shanghai" > /etc/timezone
|
||||
|
||||
|
||||
+26
-14
@@ -16,7 +16,18 @@ git clone <仓库地址>
|
||||
cd MyTool
|
||||
```
|
||||
|
||||
### 2. 启动服务
|
||||
### 2. 配置工作目录
|
||||
|
||||
编辑 `docker/docker-compose.yml`,将 `/path/to/MusicWork` 替换为宿主机上的音乐工作目录:
|
||||
|
||||
```yaml
|
||||
volumes:
|
||||
- /your/actual/path/MusicWork:/home/mangtool/MusicWork
|
||||
```
|
||||
|
||||
该目录下包含 `Input/`(放入待处理的音频文件)、`Library/`(整理后的曲库)和 `Rejected/`(被拒绝的文件)三个子目录。
|
||||
|
||||
### 3. 启动服务
|
||||
|
||||
**Linux / macOS:**
|
||||
|
||||
@@ -42,12 +53,20 @@ cd docker
|
||||
docker compose up -d --build
|
||||
```
|
||||
|
||||
### 3. 访问应用
|
||||
### 4. 访问应用
|
||||
|
||||
浏览器打开:**http://localhost:8080**
|
||||
|
||||
前端与后端由同一服务提供,无需单独配置 API 地址。
|
||||
|
||||
### 5. 一键导入
|
||||
|
||||
1. 在 **配置** 页面设置工作根目录(与挂载路径一致,如 `/home/mangtool/MusicWork`)。
|
||||
2. 将待处理的音频文件放入 `Input/` 目录。
|
||||
3. 切换到 **一键导入** 页面,点击「开始一键导入」。
|
||||
4. 系统自动完成:扫描 → 校验元数据 → 繁简转换 → 转码为 FLAC → 去重 → 整理入库。
|
||||
5. 成功文件进入 `Library/` 目录,被拒绝的文件进入 `Rejected/` 下的对应子目录。
|
||||
|
||||
## 常用命令
|
||||
|
||||
| 操作 | 命令 |
|
||||
@@ -62,22 +81,15 @@ docker compose up -d --build
|
||||
## 端口与数据
|
||||
|
||||
- **端口**:宿主机 `8080` 映射容器 `8080`,可在 `docker-compose.yml` 中修改左侧端口,例如 `"8888:8080"`。
|
||||
- **数据**:工具读写路径在容器内;若需挂载宿主机目录(如音乐库、输入输出目录),在 `docker-compose.yml` 中取消 `volumes` 注释并改为实际路径。
|
||||
- **数据**:工具读写路径在容器内通过 volume 挂载;请确保宿主机目录存在且容器内用户有读写权限。首次启动后系统会在工作根目录下自动创建 `Input/`、`Library/`、`Rejected/` 子目录。
|
||||
|
||||
## 构建说明
|
||||
### FFmpeg
|
||||
|
||||
- **Dockerfile**:多阶段构建
|
||||
1. 使用 Node 20 构建前端(Vite),产出到 `dist`
|
||||
2. 使用 Maven + JDK 8 构建后端,并将前端 `dist` 拷贝到 `src/main/resources/static`
|
||||
3. 运行阶段使用 `eclipse-temurin:8-jre-alpine`,仅运行打包好的 Spring Boot jar
|
||||
4. 内置健康检查(每 30 秒检查 `/api/health` 端点)
|
||||
- 生产环境前端 API/WebSocket 使用相对路径,与后端同源,无需再配 CORS。
|
||||
- 已配置 `.dockerignore` 优化构建上下文,加快构建速度。
|
||||
- **Maven 镜像**:已配置使用阿里云 Maven 镜像加速依赖下载,解决网络问题。
|
||||
容器内置 FFmpeg,一键导入过程中的格式转换(WAV/APE/AIFF/WV/TTA → FLAC)自动使用容器的 FFmpeg。
|
||||
|
||||
## 故障排查
|
||||
## 常见问题
|
||||
|
||||
### Maven 依赖下载失败
|
||||
### 构建失败
|
||||
|
||||
如果构建时遇到 Maven 依赖下载失败(如 `handshake_failure` 或网络超时):
|
||||
|
||||
|
||||
@@ -10,7 +10,11 @@ services:
|
||||
ports:
|
||||
- "8080:8080"
|
||||
restart: unless-stopped
|
||||
# 如需挂载本地目录给工具读写,可取消注释并修改路径
|
||||
# volumes:
|
||||
# - /path/on/host/Input:/app/data/Input
|
||||
# - /path/on/host/Library_Final:/app/data/Library_Final
|
||||
# 挂载音乐工作目录(替换 /path/to/MusicWork 为实际路径)
|
||||
# 工作根目录下应包含 Input/ (待处理) Library/ (曲库)和 Rejected/ (被拒绝)三个子目录
|
||||
volumes:
|
||||
- /path/to/MusicWork:/home/mangtool/MusicWork
|
||||
environment:
|
||||
- MANGTOOL_HOME=/home/mangtool
|
||||
# 如果需要覆盖 ffmpeg 路径:
|
||||
# - MANGTOOL_FFMPEG_BIN=/usr/bin/ffmpeg
|
||||
|
||||
Reference in New Issue
Block a user