欢迎光临
我们一直在努力

宝塔面板 + Docker 部署道理鱼音乐(连接宿主机 MySQL)

一、道理鱼音乐简介

道理鱼音乐(DaoLiYu Music)是一款开源的全栈音乐管理与播放系统,专为 NAS、个人服务器和自托管场景设计。它能帮你把本地音乐、有声书、音乐视频等资源统一管理,通过现代化的 Web 界面随时随地播放。
核心亮点:

  • 🎵 全格式支持:MP3、FLAC、DTS、DSD、APE 等高码率音频,以及音乐视频和有声书
  • 🔍 智能元数据:自动扫描 ID3 信息,补全专辑封面、歌词、歌手简介
  • 🎧 实时转码:集成 FFmpeg,自动转码适配不同设备和网络环境
  • 👥 多用户体系:管理员/普通用户、注册开关、权限管理,适合家庭共享
  • 🐳 轻量部署:提供 Docker 镜像,支持 MySQL / PostgreSQL / SQLite 等数据库
  • 二、部署架构说明

    本教程的场景是:

  • 宿主机已通过宝塔面板安装并运行 MySQL
  • 使用 Docker Compose​ 部署道理鱼音乐容器
  • 容器内应用直接连接宿主机的宝塔 MySQL(而非另起一个 MySQL 容器)
  • 优点:数据库统一由宝塔管理(备份、监控更方便),减少容器数量,适合已有服务器环境。

    三、Step 1:配置宝塔 MySQL 数据库

    1️⃣ 修改 MySQL 监听地址

    进入宝塔 → 软件商店 → MySQL → 配置修改,在 /www/server/mysql/etc/my.cnf的 [mysqld]段确认:

    bind-address = 0.0.0.0
    skip-name-resolve
  • bind-address = 0.0.0.0:允许 Docker 容器等非本地连接
  • skip-name-resolve:禁用 DNS 反向解析,避免连接 warning 并提升性能
  • 保存后重启 MySQL。

    2️⃣ 创建数据库和用户

    在宝塔 → 数据库中操作:

  • 创建数据库:dly(字符集 utf8mb4)
  • 创建用户:dly,密码设为强密码
  • 授权:该用户对 daoliyu库的全部权限,权限来源选择“所有人”(即 %)
  • ScreenShot_2026-05-14_101150_181.png

    3️⃣ 放行端口

    宝塔 → 安全 → 放行 TCP 3306。如果是云服务器,还需在云厂商安全组中放行。

    四、Step 2:编写 docker-compose.yml

    创建 docker-compose.yml:

    version: '3.8'
    
    services:
      daoliyu-music:
        image: msmkls/daoliyu-music:beta
        container_name: daoliyu-music
        restart: unless-stopped
        # 关键:让容器通过 host.docker.internal 访问宿主机
        extra_hosts:
          - "host.docker.internal:host-gateway"
        ports:
          - "4000:4000"
        environment:
          DLY_DB_DRIVER: "mysql"
          DLY_DB_DSN: "你的数据库用户名:你的数据库密码@tcp(host.docker.internal:3306)/你的数据库名?charset=utf8mb4&parseTime=true&loc=Local"
          TZ: "Asia/Shanghai"
        volumes:
          - ./runtime-prod/data:/app/runtime/data
          - /www/wwwroot/music:/app/runtime/library
          - ./runtime-prod/cache/transcoding:/app/runtime/cache/transcoding
          - /etc/machine-id:/host/etc/machine-id:ro
          - /vol4/1000/Emby_Server/Music:/media   #/vol4/1000/Emby_Server/Music是你的音乐文件目录,按需修改
        devices:
          - /dev/snd:/dev/snd
        group_add:
          - audio
    五、Step 3:启动与验证

    启动成功后访问:http://服务器IP:4000,首次打开会引导配置数据库,选择MYsql。
    ScreenShot_2026-05-14_102322_150.png
    ScreenShot_2026-05-14_102818_092.png
    ScreenShot_2026-05-14_102900_282.png
    创建管理员账户。
    ScreenShot_2026-05-14_102934_564.png

    此部署方式的有点:

    1️⃣ 数据库统一托管,备份/迁移更简单(最实用)

    ✅ MySQL 由 宝塔面板统一管理​
    ✅ 可直接用宝塔的:

  • 定时备份
  • 一键恢复
  • 导出 SQL
  • 监控连接数 / 慢查询
  • 2️⃣ 更少容器 = 更低资源占用(适合小内存服务器)
    3️⃣ 网络链路更短,连接更稳定
    容器 → 宿主机 MySQL(TCP 本地)
    而不是:
    容器 → docker network → mysql 容器
    优势:
    少一层 DNS / 网桥转发
    不受 mysql 容器健康/重启影响
    启动顺序更简单(无需 healthcheck 强依赖)
    4️⃣ 更适合“已有宝塔环境”的混部场景

    赞(0)

    评论 抢沙发