version: '3.8'
services:
# --- 1. Emby-Toolkit 主程序 ---
emby-toolkit:
image: hbq0405/emby-toolkit:latest
container_name: emby-toolkit
network_mode: bridge # 网络模式
ports:
- "5257:5257" # 管理端口
- "8097:8097" # 反代端口,虚拟库用,冒号前面是实际访问端口,冒号后面是管理后台设置的反代监听端口
volumes:
- /path/emby-toolkit:/config # 将宿主机的数据目录挂载到容器的 /config 目录
- /path/tmdb:/tmdb # 映射神医本地TMDB目录,非神医Pro用户可以留空
- /var/run/docker.sock:/var/run/docker.sock # 一键更新用,不需要可以不配置
environment:
- APP_DATA_DIR=/config # 持久化目录
- TZ=Asia/Shanghai # 设置容器时区
- AUTH_USERNAME=admin # 用户名可任意设置,密码在程序首次运行会生成初始密码:password
- PUID=1000 # 设置为你的用户ID,建议与宿主机用户ID保持一致
- PGID=1000 # 设置为DOCKER组ID (一键更新用,‘grep docker /etc/group’可以查询)
- UMASK=022 # 设置文件权限掩码,建议022
- DB_HOST=172.17.0.1 # 数据库服务的地址
- DB_PORT=5433 # 数据库服务的端口
- DB_USER=embytoolkit # !!! (可选) 修改为你自己的数据库用户名
- DB_PASSWORD=embytoolkit # !!! (必填) 请修改为一个强密码 !!!
- DB_NAME=embytoolkit # !!! (可选) 修改为你自己的数据库名
- CONTAINER_NAME=emby-toolkit # 以下两项都是一键更新用,不需要可以不配置
- DOCKER_IMAGE_NAME=hbq0405/emby-toolkit:latest
restart: unless-stopped
depends_on: # 确保主程序只在数据库健康检查通过后才启动
db:
condition: service_healthy
# --- 2. PostgreSQL 数据库服务 ---
db:
image: postgres:16-alpine
container_name: emby-toolkit-db
restart: unless-stopped
network_mode: bridge
volumes:
# 将数据库的持久化数据存储在名为 'postgres_data' 的Docker卷中
# 这可以确保即使删除了容器,数据库数据也不会丢失
- postgres_data:/var/lib/postgresql/data
environment:
# --- 数据库认证配置 (核心) ---
# 这些值必须与上面的 'emby-toolkit' 服务中的环境变量完全匹配
- POSTGRES_USER=embytoolkit # !!! (可选) 修改,与上面保持一致
- POSTGRES_PASSWORD=embytoolkit # !!! (必填) 修改,与上面保持一致 !!!
- POSTGRES_DB=embytoolkit # !!! (可选) 修改,与上面保持一致
ports:
# 将数据库端口映射到宿主机,方便使用Navicat等工具连接调试
- "5433:5432"
healthcheck:
# 健康检查,确保数据库服务已准备好接受连接
test: ["CMD-SHELL", "pg_isready -U embytoolkit -d embytoolkit"]
interval: 10s
timeout: 5s
retries: 5
volumes:
postgres_data: # 创建一个Docker卷持久化保存数据库数据项目地址: