近日,不少黑群晖用户和正版Synology NAS用户反映,在升级至DSM 7操作系统后,尝试通过Docker容器部署Radarr(一款电影自动化管理工具)时频频遭遇“翻车”。有用户在社区发帖称,按照以往教程操作,容器始终无法正常启动,日志报错信息令人摸不着头脑。经过多方测试与社区协作,问题根源逐渐浮出水面——DSM 7对Docker容器的权限管理机制进行了重大调整,导致许多旧有镜像和配置方案失效。

卡在权限鸿沟上:PUID/PGID不再是万能钥匙

在DSM 6时代,用户通常只需在Docker创建容器时设置环境变量PUID和PGID为0(即root用户),就能轻松获取文件读写权限。然而DSM 7引入了更严格的SELinux策略与用户命名空间隔离,直接使用root权限运行容器反而不被系统认可。典型报错为:“Permission denied: /config”或“无法写入/downloads目录”。

解决方案:不再强制使用root,而是创建一个专门的系统用户(如sc-radarr)并赋予其对应文件夹的读写权限。在Docker容器的环境变量中,将PUID和PGID设置为此用户的UID/GID(可通过SSH执行id sc-radarr获取)。同时需在Synology File Station中手动将/docker/radarr/config/volume1/downloads等映射目录的“所有者”改为该用户。

数据库路径错位:SQLite文件权限陷阱

另一高频问题出现在数据库初始化阶段。Radarr默认会在/config目录下创建radarr.db,但DSM 7的Docker内部文件系统可能存在“孤儿进程”残留,导致容器重启后旧数据库文件归属混乱。用户会看到:“Unable to open database file”或“Error creating database”。

对策:在初次部署时,务必先手动创建一个空白的radarr.db文件(可通过命令行touch radarr.db),并赋予666权限(或上述专用用户可读写)。之后再将此文件放入映射的config目录。更稳妥的做法是,在docker-compose.yml中增加volumes:映射时,使用/volume1/docker/radarr/config这种绝对路径,避免相对路径引发的权限继承问题。

网络模式冲突:桥接与host的抉择

DSM 7默认的Docker网络模式为bridge,而Radarr需要监听特定端口(默认7878)。不少用户反映容器能启动但无法通过IP:7878访问,检查发现端口映射虽然设置正确,但系统防火墙DSM Firewall默认阻止了非标准端口的外部连接。更隐蔽的是,如果同时运行了Qbittorrent或Sonarr等其他容器,可能因端口冲突导致Radarr内部HTTP服务挂起。

最佳实践:推荐使用network_mode: "host"(主机模式),让Radarr直接使用NAS主机IP,避免端口映射和防火墙规则。但需注意host模式下无法使用Synology的“容器端口转发”GUI进行管理。若坚持桥接模式,则需在DSM控制面板的“安全”>“防火墙”中手动放行7878端口,并检查是否有其他容器占用该端口(通过docker ps查看)。

中文文件名乱码:区域设置的遗留难题

Radarr在处理中文命名的电影文件时,常出现乱码或无法识别的状况。这并非DSM 7特有,但DSM 7对Docker容器的locale支持有所弱化。用户会发现/downloads中的文件在Radarr界面显示为“????”或空白。

修正:在创建容器时添加环境变量LANG=zh_CN.UTF-8LC_ALL=zh_CN.UTF-8,并确保宿主机的/etc/locale.gen已启用zh_CN编码(需通过SSH执行locale-gen)。同时,Radarr设置中的“Media Management”>“Rename Movies”功能建议保持开启,并选择“English (Default)”或“Chinese (Simplified)”作为重命名语言。

总结:DSM 7下的Radarr部署清单

  1. 准备工作:在DSM控制面板中创建专用用户,并赋予docker文件夹及下载目录的读写权限。
  2. 拉取镜像:使用官方镜像ghcr.io/linuxserver/radarr:latest(推荐LinuxServer版本,适配性更好)。
  3. docker-compose.yml核心配置yaml version: "2.1" services: radarr: image: ghcr.io/linuxserver/radarr:latest container_name: radarr environment: - PUID=1026 # 替换为你的用户UID - PGID=1000 # 替换为你的用户GID - TZ=Asia/Shanghai - UMASK=022 volumes: - /volume1/docker/radarr/config:/config - /volume1/Media/Movies:/movies - /volume1/downloads:/downloads ports: - 7878:7878 restart: unless-stopped
  4. 启动后检查:查看日志是否包含“Starting WebServer”字样,若无则排查权限及网络。

目前官方论坛上,已有热心用户整理出针对DSM 7的fix-permissions.sh脚本,可一键修复容器内外用户ID映射问题。建议遇到“Permission denied”的用户尝试运行。此外,为避免后续系统更新引发二次故障,建议关闭Docker自动升级,每次升级后手动检查容器状态。

总之,DSM 7的严苛权限策略虽增加了配置门槛,但也保障了NAS整体安全。掌握上述技巧后,Radarr容器便能在新系统下稳定运行,助您将电影收藏管理变得井井有条。