使用Docker Compose部署Audiobookshelf音频书管理平台
2025-07-06 07:35:10作者:丁柯新Fawn
项目概述
Audiobookshelf是一个开源的音频书管理平台,它允许用户组织、管理和收听个人音频书收藏。通过Docker Compose部署Audiobookshelf可以简化安装过程,确保环境一致性,并便于后续维护升级。
部署准备
在开始部署前,请确保系统已安装:
- Docker引擎(版本17.06.0或更高)
- Docker Compose(版本1.28.0或更高)
Docker Compose配置详解
基础服务配置
services:
audiobookshelf:
image: ghcr.io/advplyr/audiobookshelf:latest
这里定义了名为audiobookshelf
的服务,使用官方提供的最新镜像。该镜像包含了运行Audiobookshelf所需的所有依赖和应用程序代码。
网络端口映射
ports:
- 13378:80
- 左侧
13378
是主机端口,可根据需要修改(确保未被其他服务占用) - 右侧
80
是容器内部端口,不应更改,因为这是Audiobookshelf服务的默认监听端口
数据卷配置
volumes:
- ./audiobooks:/audiobooks
- ./podcasts:/podcasts
- ./metadata:/metadata
- ./config:/config
数据卷配置是部署中最关键的部分,它确保了数据的持久化和可访问性:
-
音频书目录:
./audiobooks:/audiobooks
- 将主机上的
./audiobooks
目录映射到容器内的/audiobooks
- 这是存放音频书文件的目录,可根据需要添加多个映射
- 将主机上的
-
播客目录:
./podcasts:/podcasts
- 类似音频书目录,用于存放播客内容
-
元数据目录:
./metadata:/metadata
- 存储Audiobookshelf生成的元数据(如封面、描述等)
- 可以存放在主机任意位置
-
配置目录:
./config:/config
- 存储应用程序配置和数据库
- 必须位于运行Docker的物理主机上
运行参数
restart: unless-stopped
设置容器重启策略为unless-stopped
,意味着:
- 容器会在Docker守护进程启动时自动启动
- 除非明确停止容器,否则在异常退出时会自动重启
用户权限(可选)
# user: 1000:1000
默认情况下容器以root用户运行,取消注释并修改UID/GID可以让容器以特定用户运行:
- 在Linux上,可通过
id -u
和id -g
命令获取当前用户的UID和GID - 确保指定用户对映射的目录有读写权限
部署步骤
-
创建项目目录并进入:
mkdir audiobookshelf && cd audiobookshelf
-
创建
docker-compose.yml
文件,将上述配置内容复制进去 -
创建所需的本地目录:
mkdir -p audiobooks podcasts metadata config
-
启动服务:
docker-compose up -d
-
访问服务: 打开浏览器访问
http://localhost:13378
(如果修改了端口号,请使用修改后的端口)
常见问题解决
-
权限问题:
- 如果遇到文件访问权限错误,可尝试:
- 取消
user
配置并指定正确的UID/GID - 或使用
chmod
调整本地目录权限
- 取消
- 如果遇到文件访问权限错误,可尝试:
-
端口冲突:
- 如果13378端口已被占用,修改
docker-compose.yml
中的左侧端口号
- 如果13378端口已被占用,修改
-
数据迁移:
- 升级或重新部署时,只需保留
metadata
和config
目录即可恢复原有数据
- 升级或重新部署时,只需保留
维护与升级
-
停止服务:
docker-compose down
-
更新镜像:
docker-compose pull docker-compose up -d
-
查看日志:
docker-compose logs -f
通过Docker Compose部署Audiobookshelf不仅简化了安装过程,还便于后续的维护和升级。这种部署方式特别适合希望快速搭建个人音频书管理系统的用户,同时也为高级用户提供了足够的灵活性来定制自己的配置。