fix: keep existing library files in place

This commit is contained in:
ShukeBta
2026-05-29 03:04:27 +08:00
parent fc0dc70bad
commit 48d33275cb
7 changed files with 168 additions and 31 deletions
+41 -15
View File
@@ -287,7 +287,7 @@ vim docker-compose.yml
#
# 镜像版本:
# 默认拉取 latest;如需固定版本,创建 .env 并写入:
# MEDIASTATION_IMAGE_TAG=MediaStationGo-v0.0.7
# MEDIASTATION_IMAGE_TAG=MediaStationGo-v0.0.8
#
# 路径映射总览:
# /data 程序数据目录。保存 SQLite 数据库、JWT secret、系统配置等,必须持久化。
@@ -342,7 +342,9 @@ services:
# NAS / 飞牛等系统请写绝对路径,例如:
# MEDIASTATION_MEDIA_DIR=/vol1/1000/Docker/moviepilot-v2/media
# 不要写 ./vol1/...,否则会变成当前部署目录下的 vol1 子目录。
- ${MEDIASTATION_MEDIA_DIR:-./media}:/media:ro
# 默认映射到容器 /media;如需在网页中直接填写宿主机绝对路径,可将
# MEDIASTATION_MEDIA_CONTAINER_DIR 设置为同一个 /vol1/... 路径。
- ${MEDIASTATION_MEDIA_DIR:-./media}:${MEDIASTATION_MEDIA_CONTAINER_DIR:-/media}:ro
# 下载保存目录。订阅/站点下载的保存路径建议使用:
# /downloads/Movies
@@ -353,7 +355,9 @@ services:
# NAS / 飞牛等系统请写绝对路径,例如:
# MEDIASTATION_DOWNLOAD_DIR=/vol1/1000/qBittorrent/downloads
# 不要写 ./vol1/...,否则下载目录会被映射到当前部署目录下面。
- ${MEDIASTATION_DOWNLOAD_DIR:-./downloads}:/downloads
# 默认映射到容器 /downloads;如需下载器和应用都使用宿主机绝对路径,可将
# MEDIASTATION_DOWNLOAD_CONTAINER_DIR 设置为同一个 /vol1/... 路径。
- ${MEDIASTATION_DOWNLOAD_DIR:-./downloads}:${MEDIASTATION_DOWNLOAD_CONTAINER_DIR:-/downloads}
environment:
# Web 服务监听配置。容器内固定监听 8080,对外端口由上方 ports 控制。
@@ -370,9 +374,9 @@ services:
# /vol1/1000/Docker/moviepilot-v2/media/电视剧 -> /media/电视剧
# /vol1/1000/qBittorrent/downloads/国产剧 -> /downloads/国产剧
MEDIASTATION_MEDIA_DIR: ${MEDIASTATION_MEDIA_DIR:-./media}
MEDIASTATION_MEDIA_CONTAINER_DIR: /media
MEDIASTATION_MEDIA_CONTAINER_DIR: ${MEDIASTATION_MEDIA_CONTAINER_DIR:-/media}
MEDIASTATION_DOWNLOAD_DIR: ${MEDIASTATION_DOWNLOAD_DIR:-./downloads}
MEDIASTATION_DOWNLOAD_CONTAINER_DIR: /downloads
MEDIASTATION_DOWNLOAD_CONTAINER_DIR: ${MEDIASTATION_DOWNLOAD_CONTAINER_DIR:-/downloads}
# 日志级别:debug / info / warn / error。
MEDIASTATION_LOGGING_LEVEL: ${MEDIASTATION_LOGGING_LEVEL:-info}
@@ -470,7 +474,7 @@ docker compose up -d
```bash
cat > .env <<'EOF'
MEDIASTATION_IMAGE_TAG=MediaStationGo-v0.0.7
MEDIASTATION_IMAGE_TAG=MediaStationGo-v0.0.8
MEDIASTATION_HTTP_PORT=18080
MEDIASTATION_MEDIA_DIR=/mnt/nas/media
MEDIASTATION_DOWNLOAD_DIR=/mnt/nas/downloads
@@ -498,6 +502,26 @@ Docker Compose 左侧是宿主机真实目录,右侧是容器内目录。宿
> 如果你在添加媒体库时填写了 `/vol1/1000/Docker/moviepilot-v2/media/电视剧/国产剧` 并提示不可访问,原因是应用在容器内运行,默认只能看到 `/media/电视剧/国产剧`。新版 compose 会把宿主机路径作为映射提示传入容器,尽量自动纠正;但最推荐、最稳定的填写方式仍然是容器路径 `/media/...`。
如果你更希望“页面里直接填写 NAS 绝对路径”,可以把宿主机路径和容器路径设置成完全一致,这不会复制文件,也不会多占空间:
```env
MEDIASTATION_MEDIA_DIR=/vol1/1000/Docker/moviepilot-v2/media
MEDIASTATION_MEDIA_CONTAINER_DIR=/vol1/1000/Docker/moviepilot-v2/media
MEDIASTATION_DOWNLOAD_DIR=/vol1/1000/qBittorrent/downloads
MEDIASTATION_DOWNLOAD_CONTAINER_DIR=/vol1/1000/qBittorrent/downloads
```
对应 compose 实际效果等价于:
```yaml
- /vol1/1000/Docker/moviepilot-v2/media:/vol1/1000/Docker/moviepilot-v2/media:ro
- /vol1/1000/qBittorrent/downloads:/vol1/1000/qBittorrent/downloads
```
这样添加媒体库时就可以直接填写 `/vol1/1000/Docker/moviepilot-v2/media/电视剧/国产剧`。
> 安全策略:扫描和播放只读取原目录;“整理整个库”不会再搬动已经位于媒体库目录内的文件,避免本地 NFO、海报、字幕等元数据被迁移后丢失。下载完成后的自动整理仍然默认关闭,只有你手动打开后才会移动下载目录中的新文件。
如果 compose 中这样挂载:
```yaml
@@ -582,7 +606,9 @@ qBittorrent 容器:/downloads
| `MEDIASTATION_DATA_DIR` | `./data` | 数据持久化目录 |
| `MEDIASTATION_CACHE_DIR` | `./cache` | 图片和转码缓存目录 |
| `MEDIASTATION_MEDIA_DIR` | `./media` | 媒体库宿主机目录;NAS 建议写 `/vol1/1000/Docker/moviepilot-v2/media` 这种绝对路径 |
| `MEDIASTATION_MEDIA_CONTAINER_DIR` | `/media` | 容器内媒体路径;如想页面直接填写 `/vol1/...`,可设置成与 `MEDIASTATION_MEDIA_DIR` 相同 |
| `MEDIASTATION_DOWNLOAD_DIR` | `./downloads` | 下载保存宿主机目录;NAS 建议写 `/vol1/1000/qBittorrent/downloads` 这种绝对路径 |
| `MEDIASTATION_DOWNLOAD_CONTAINER_DIR` | `/downloads` | 容器内下载路径;如想下载器保存路径直接使用 `/vol1/...`,可设置成与 `MEDIASTATION_DOWNLOAD_DIR` 相同 |
| `PUID` / `PGID` | `1000` / `1000` | Linux/NAS 文件权限映射 |
| `TZ` | `Asia/Shanghai` | 容器时区 |
@@ -650,26 +676,26 @@ cd MediaStationGo
| 平台 | 包名示例 |
| --- | --- |
| Linux x86_64 | `MediaStationGo-v0.0.7-linux-amd64.tar.gz` |
| Linux ARM64 | `MediaStationGo-v0.0.7-linux-arm64.tar.gz` |
| Windows x86_64 | `MediaStationGo-v0.0.7-windows-amd64.zip` |
| macOS Intel | `MediaStationGo-v0.0.7-darwin-amd64.tar.gz` |
| macOS Apple Silicon | `MediaStationGo-v0.0.7-darwin-arm64.tar.gz` |
| Linux x86_64 | `MediaStationGo-v0.0.8-linux-amd64.tar.gz` |
| Linux ARM64 | `MediaStationGo-v0.0.8-linux-arm64.tar.gz` |
| Windows x86_64 | `MediaStationGo-v0.0.8-windows-amd64.zip` |
| macOS Intel | `MediaStationGo-v0.0.8-darwin-amd64.tar.gz` |
| macOS Apple Silicon | `MediaStationGo-v0.0.8-darwin-arm64.tar.gz` |
部署步骤:
```bash
# Linux 示例
tar -xzf MediaStationGo-v0.0.7-linux-amd64.tar.gz
cd MediaStationGo-v0.0.7-linux-amd64
tar -xzf MediaStationGo-v0.0.8-linux-amd64.tar.gz
cd MediaStationGo-v0.0.8-linux-amd64
MEDIASTATION_APP_PORT=18080 ./mediastation-go
```
Windows:
```powershell
Expand-Archive .\MediaStationGo-v0.0.7-windows-amd64.zip
cd .\MediaStationGo-v0.0.7-windows-amd64
Expand-Archive .\MediaStationGo-v0.0.8-windows-amd64.zip
cd .\MediaStationGo-v0.0.8-windows-amd64
$env:MEDIASTATION_APP_PORT = "18080"
.\mediastation-go.exe
```