
xiaomusic Docker 部署后文件全是 root3 步定位并解决的权限排查指南【免费下载链接】xiaomusic使用小爱音箱播放音乐音乐使用 yt-dlp 下载。项目地址: https://gitcode.com/GitHub_Trending/xia/xiaomusic用 Docker 跑 xiaomusic 下载歌曲功能都正常可一打开宿主机目录下载的音乐和 conf 配置文件全显示 root 所有自己账号想拷、想删都提示权限不足。这是 xiaomusic 容器部署常见的权限问题本文给你 3 条按改动从小到大排序的解决办法照着做即可。先自查是不是同一个问题不用翻日志对照这 3 条现象10 秒确认是否中招在宿主机上ls -l音乐目录新下载文件的属主是root root而你的登录账号不是 root。想删除或改名为这些文件时报Permission denied网页端却显示一切正常。问题只出在 Docker 部署直接pip安装运行则文件属主一直是自己。三条中占两条就是容器以 root 运行导致的。根因一分钟讲清把 UID/GID 不一致想成门牌号贴错文件记录的是容器内用户的编号宿主机按这个编号找不到人就一律归到 root 名下。xiaomusic 的 Dockerfile 没有指定 USER容器内进程默认以 rootUID 0运行。文件落盘时属主就写成了 0宿主机普通用户自然读不了、删不掉。按改动成本排序的解决路径最快启动命令加一行 -u适合手动docker run启动、或临时验证。在启动命令里加-u UID:GID先用id查到宿主机账号的 UID/GIDdocker run -u 1000:1000 -p 58090:8090 \ -v /xiaomusic_music:/app/music \ -v /xiaomusic_conf:/app/conf hanxi/xiaomusic验证ls -ln /xiaomusic_music新文件属主应显示1000而不是0。推荐compose 里持久化 user适合生产长期运行。在 README 的 compose 示例 基础上加一行user重启容器即可services: xiaomusic: image: hanxi/xiaomusic user: 1000:1000 ports: - 58090:8090 volumes: - /xiaomusic_music:/app/music - /xiaomusic_conf:/app/conf验证docker exec xiaomusic id输出应为uid1000 gid1000。兜底放宽宿主机目录权限不想动容器时的临时办法把两个挂载目录权限放开仅建议测试环境chmod -R 777 /xiaomusic_music /xiaomusic_conf验证用普通用户直接touch /xiaomusic_music/test不报错即生效。验证与防复发新下载歌曲的属主显示为你的 UID/GID不再是 root普通账号能直接删除、复制这些文件容器重启后属主设置仍然生效没有回退到 root预防两条部署前就在 compose 里写好user别等问题出现再补。挂载的music、conf目录提前建好并归到自己账号避免 root 首次写入。核心就一句给容器指定和宿主机一致的user属主就不会错。需要更完整的部署参数可继续看 docs/issues/99.md。【免费下载链接】xiaomusic使用小爱音箱播放音乐音乐使用 yt-dlp 下载。项目地址: https://gitcode.com/GitHub_Trending/xia/xiaomusic创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考