Solution: Use NFS -_-’


Hello. I’ve been using hotio’s qbittorent, radarr and sonarr images for a while and I’ve been really happy with it. But A few weeks ago, I started having problems with radarr failing to copy my files to the destination folder. I have qbittorrent on machine A and my video server on machine B (called “orbiter”). I mounted destination folder on machine B to machine A like follow: sudo mount -t cifs //orbiter/Video/ /mnt/OrbiterVideo -o username=root,password=omgstrongpassword,uid=998,gid=100

And added it to fstab: //orbiter/Video /mnt/OrbiterVideo/ cifs username=root,password=omgstrongpassword,iocharset=utf8,noperm,uid=998,gid=100 0 0

Now, here are my docker-compose for qbittorrent and radarr :

QBittorrentVPN

version: "3.7"

services:
  qbittorrent:
    container_name: qbittorrentvpn
    image: cr.hotio.dev/hotio/qbittorrent
    ports:
      - 8992:8992
      - 8118:8118
    environment:
      - WEBUI_PORTS=8992/tcp,8992/udp
      - PUID=998
      - PGID=100
      - UMASK=0022
      - TZ=Europe/Paris
      - VPN_ENABLED=true
      - VPN_LAN_NETWORK=192.168.1.0/24
      - VPN_CONF=wg0
     # - VPN_ADDITIONAL_PORTS
      - VPN_IP_CHECK_DELAY=5
      - PRIVOXY_ENABLED=false
      - DEBUG=yes
    volumes:
      - /srv/path/Files/QBittorrentVPN:/config
      - /srv/path/Files/QBittorrentVPN/downloads:/downloads
      - /srv/path/Files/QBittorrentVPN/skins:/skins
    cap_add:
      - NET_ADMIN
    sysctls:
      - net.ipv4.conf.all.src_valid_mark=1
      - net.ipv6.conf.all.disable_ipv6=1
    restart: unless-stopped

Radarr

version: "3.7"

services:
  radarr:
    container_name: radarr
    hostname: Radarr
    image: cr.hotio.dev/hotio/radarr
    ports:
      - "7878:7878"
    environment:
      - PUID=998
      - PGID=100
      - UMASK=002
      - TZ=Europe/Paris
    volumes:
      - /srv/path/Files/Radarr/config:/config
      - /srv/path/Files/QBittorrentVPN/downloads:/downloads
      - /mnt/OrbiterVideo/movies/:/movies
    restart: unless-stopped

Radarr manages to grab and download a movie, but it fails to copy it:

2023-07-21 16:15:59.3|Warn|ImportApprovedMovie|Couldn't import movie /downloads/awesomemovie.mkv

[v4.6.4.7568] System.UnauthorizedAccessException: Access to the path '/movies/awesomemovie' is denied.
 ---> System.IO.IOException: Permission denied
   --- End of inner exception stack trace ---
   at System.IO.FileSystem.CreateDirectory(String fullPath)
   at System.IO.Directory.CreateDirectory(String path)
   at NzbDrone.Common.Disk.DiskProviderBase.CreateFolder(String path) in ./Radarr.Common/Disk/DiskProviderBase.cs:line 189
   at NzbDrone.Core.MediaFiles.MovieFileMovingService.CreateFolder(String directoryName) in ./Radarr.Core/MediaFiles/MovieFileMovingService.cs:line 215
   at NzbDrone.Core.MediaFiles.MovieFileMovingService.EnsureMovieFolder(MovieFile movieFile, Movie movie, String filePath) in ./Radarr.Core/MediaFiles/MovieFileMovingService.cs:line 185
   at NzbDrone.Core.MediaFiles.MovieFileMovingService.EnsureMovieFolder(MovieFile movieFile, LocalMovie localMovie, String filePath) in ./Radarr.Core/MediaFiles/MovieFileMovingService.cs:line 165
   at NzbDrone.Core.MediaFiles.MovieFileMovingService.CopyMovieFile(MovieFile movieFile, LocalMovie localMovie) in ./Radarr.Core/MediaFiles/MovieFileMovingService.cs:line 90
   at NzbDrone.Core.MediaFiles.UpgradeMediaFileService.UpgradeMovieFile(MovieFile movieFile, LocalMovie localMovie, Boolean copyOnly) in ./Radarr.Core/MediaFiles/UpgradeMediaFileService.cs:line 73
   at NzbDrone.Core.MediaFiles.MovieImport.ImportApprovedMovie.Import(List`1 decisions, Boolean newDownload, DownloadClientItem downloadClientItem, ImportMode importMode) in ./Radarr.Core/MediaFiles/MovieImport/ImportApprovedMovie.cs:line 129

It is important to note that I didn’t change anything in my config.

Is there something I am doing wrong here ? I can’t see through this anymore.

  • TiritibambixOP
    link
    fedilink
    English
    arrow-up
    4
    ·
    1 year ago

    The ending / wasn’t a problem a few weeks back, but I tried to remove it anyway with no luck. The share is mounted and I can browse it from source machine and container.

    • cc8@infosec.pub
      link
      fedilink
      English
      arrow-up
      2
      ·
      edit-2
      1 year ago

      Have you set the correct chown permissions? ls -al /mnt/OrbiterVideo/movies

      I have a similiar issue on a plex transcode folder that randomly resets permissions.

      • TiritibambixOP
        link
        fedilink
        English
        arrow-up
        3
        ·
        edit-2
        1 year ago

        Sorry if the question is silly, I’m really not good at this: Permissions are drwxr-xr-x (755).

        Shouldn’t they be drw-rw-rw- (666) or 777 ?

        Other than that, the user:group looks good.

        I can’t seem to manage to change permissions anyway

        • cc8@infosec.pub
          link
          fedilink
          English
          arrow-up
          2
          ·
          1 year ago

          Can you create files and directories in /movies inside the docker container?

          • TiritibambixOP
            link
            fedilink
            English
            arrow-up
            3
            ·
            edit-2
            1 year ago

            No. Permission denied.

            Edit: But I can in /config, which is bound to a volume on the host, not the smb

            • cc8@infosec.pub
              link
              fedilink
              English
              arrow-up
              2
              ·
              1 year ago

              Ok, that means that the issue is slimmed down to the permissions on the mounted smb share. Not docker or radarr which makes it easier to troubleshoot.

              I am not a cifs share black belt though but continue from there :)