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.
So what do the permissions look like on that file? Does it work if you enter the container as that user and try it yourself? If you have selinux enforcing, have you checked its audit log?
It has same user:group as files that could be copied before I started having bugs, And that’s the user: group I need. I have this problem with multiple files, downloaded at different times, trying to copy them on different locations on my mount. So my guess as a beginner is that the problem is at the destination. I don’t have selinux.