Docker on Mac [Sonarr/Radarr/Jackett] Issues

Thank you everyone reading this post. Jackett support stated these issues are actually w/Docker itself, to post here. Hope this post will get the situation fixed AND help you in search of a solution.

Environment: MacOS 10.15.4 (Catalina)
Docker Version: 2.2.0.5 (43884)
Sonarr: 2.0.0.5344
Mono: 5.20.1.34 (per sonarr panel)
Jackett: 0.16.127.0
Command Line Experience: Novice/Noob


  • [bullet to maintain below formatting]
    .
    EXPECTED BEHAVIOR
  • Ability for Sonarr/Radarr to run their magic & moving a downloaded file to its designated location
  • Keep Sonarr/Radarr connected to Jackett ~ use http://jacket:9117 in the related URLs.
    .
    .
    CURRENT BEHAVIOR
  • Sonarr/Radarr will not import downloaded files.
  • Sonarr/Radarr will not accept http://jacket:9117 in the URL.
    .
    .
    ATTEMPTS TO FIX
  • Grant Full Disk Access & Folders to bash, sh, smbd,sshd,Terminal, Docker (temporary to find a fix.)
  • Full Read/Write permissions to MacOS target folders (applied to enclosed directories)
  • Redirected URLS and downloads to less secured public shared space
    • Create new directory structures
  • Use the same directories for sonarr/radarr/jackett
  • sudo chown -R $(whoami) for paths
  • Failed attempts at command line fixes from others w/this problem
  • Reboots
  • Rebuilds of Sonarr/Jacket/Radarr containers
  • Delete and reinstall images & containers for Sonarr/Jackett/Radarr
  • Delete and reinstall Docker
    .
    .
  • DATA POINTS
  • Substituting (hxxp://jacket:9117•••) for Jacket IP (172.17.0.2:9117/•••) works until Jacket IP changes
    This only applies to the breaking jacket IP and does not address Sonarr/Radarr import issues.
  • Directories at the macOS level were self created through finder. Permissions opened.
    .
    .
    ERROR MESSAGES
  • Error messages are from Sonarr/Radarr, Indexer Name Error: Connect Failure (not route to host): IP.
  • When Jackett IP changes:
    • “All indexers are unavailable due to failures”
    • "All search-capable indexers are temporarily unavailable due to recent indexer errors.
    • "All rss-capable indexers are temporarily unavailable due to recent indexer errors.
      .
      .

Please post the parameters/folder information you’re using to deploy these containers.

We do not test our containers on any other is than Linux, so windows and Mac is not supported. If it works, good. But if not, I’m afraid there is not tha much we an do about it.

Below is the latest experiment, pointing to the same directories for each of the programs.
Other attempts have included:
• 100% unique directories for each of the programs (incl.User and the Shared levels.)
• Omitting UMASK


docker create
–name=sonarr2
-e PUID=1000
-e PGID=1000
-e TZ=Europe/London
-e UMASK_SET=022
-p 8989:8989
-v /Users/media:/config
-v /Users/media/tv:/tv
-v /Users/media/downloads:/downloads
–restart unless-stopped
linuxserver/sonarr

docker create
–name=radarr2
-e PUID=1000
-e PGID=1000
-e UMASK_SET=022 \
-e TZ=Europe/London
-p 7878:7878
-v /Users/media:/config
-v /Users/media/tv:/tv
-v /Users/media/downloads:/downloads
–restart unless-stopped
linuxserver/radarr

docker create
–name=jackett2
-e PUID=1000
-e PGID=1000
-e UMASK_SET=022
-e TZ=Europe/London
-p 9117:9117
-v /Users/media:/config
-v /Users/media/tv:/tv
-v /Users/media/downloads:/downloads
linuxserver/jackett


Yep…Mac users are used to that and hopeful Mac users chime in and we find a working solution.

The issue of Sonarr not accepting http://jacket:9117 is entirely INSIDE of Docker, though. One would think we could at least get that one resolved…100% linux, 100% Docker.

  1. You have used the same host path for all apps, and that is not going to work. Each app needs their own folder for the /config mount. The /config folder is not media, so use another folder like appdata.
    -v /Users/appdata/jackett:/config
    -v /Users/appdata/sonarr:/config
    I think you get the picture now.

  2. Don’t use a folder under the /config host path for the other volume mounts. If you configure the /config mounts as above, the setup you have should be good enough for not mixing stuff up. But I would have only one volume mount for both tv and downloads so the files doesn’t get copied instead of moved.
    -v /Users/media:/media

Then in the settings of each app you set the correct paths to /media/tv and /media/downloads.

  1. I don’t know how the networking stuff works in docker on Mac, so not sure if you can use the name of the container to access the webui. In case dns works inside the docker network, you have it wrong anyway, as it should be http://jackett2:9117 as you have called the container jackett2.
    Using the host IP:port should work.

  2. I don’t know how permissions work on Mac, so can’t really help with that. Google have many answers I would guess.
    You need to make sure the user 1000 have the correct permissions on the host folders.

  3. Docker on windows and mac have limitations compared to linux, so you have to find out the limitations and see if you can work around them.

1 - this is the most recent of experiments stemming from reddit tutorial. Up until then, these were all separate. Share2, Share3 and Share4. OH, the config files were meant to be in their own location, only sharing the downloads - tv - movies. I will change this as part of the experiment shortly.

2 - got it. see 1.

  1. correct. jackett2 needed - checking that now to confirm.
    <UPDATE - same error, unable to connect to indexer.>.

Jackett IP works, BUT, the number changes. Once the number changes, all the indexers break, and you need to manually go in to locate the new jacket IP, then update all the trackers w/the new ip.

Jackett web interface is accessible via desktop browser (outside of docker containers) at http://localhost:9117/

  1. yes, continuing to research.

  2. trying.

  1. I don’t know what you mean with indexers and IP. You do not use the docker network IP addresses. Use only the host IP:port if connecting them, or if dns in docker work, use container name:port. For the last it’s always the container port you use and not the host port that you mapped.
    You can’t use localhost inside the docker network.

It is probably better to ask the question to the guys that made the guide as we don’t know the guide. And I would also suggest trying to learn how docker works instead of following a guide. If you followed a guide that is not for Mac, then that is very important.

Jackett
Jackett has an internal IP. http://jackett:9117 (http://jackett2:9117) ~ that never connects.
Jackett using localhost:9117 only works outside of Docker, not inside.
What WILL connect is using the Jackett internal IP number 172.17.0.X. Right now, X=2.

So right now, I am able to use Sonarr and add indexes using hxxp://172.17.0.2 . Great. Works.

In a little while, Jackett will CHANGE that internal IP address. Since last night, that internal IP address has been 172.17.0.3, 172.17.0.5, 172.17.0.2 (repeat early on). When this number changes, everything breaks.

When it breaks, the only way to get it going again is to revisit every index set up in Sonarr and Radarr and edit the URL w/the updated IP. So, you need to go into Jackett shell, pull the number…then go back to Sonarr and open up ever Indexer to adjust the URL w/the ip change, then do the same for Radarr.

Process works, but a huge pain…and requires you to be at the computer, notice when it breaks and spend the time to update every time this happens.


Followed many a guide, and most are not for Mac. Hard to find Mac specific guides, and another layer to that is that Apple made many changes to security in its latest OS…so even when you find something a bit more Mac specific, it is older and not as applicable.

Yes, have been asking on the forums. Lot of friendly knowledgable people helping out…I was in worse shape this time last week so learned a fair amount. That said, I’m not a coder. I am learning about Docker, and even Docker does not address Mac specifically. There are gaps between Docker and Mac, for instance permissions.


Also, the forum has limits on URLs in the posting so I had to substitute two XXs simply to post the reply.

I have already told you that you should use the host IP:port if the name doesn’t work. Do not use the 172 IP that docker assigns, as that changes.

Saarg - did not understand the first mention. Applying the assigned machine IP (which must be the host ip) appears to be accepted, saved and working. Thank you. If this holds up then this problem would be solved, and the only outstanding topic would be the error "“Unable to connect to indexer, check the log for more details.”

UPDATE
Using the dedicated IP of the local machine appeared to have been accepted and working, turns out it is not working. So I obviously did not understand the statement about the host IP.

• Using http://jacket:9117 (+URL) does not work.
• Do not use the ip furnished by Jackett (because it keeps changing, yes that has been the problem)
• Using the local IP of the computer (10.0.x.x) ~ yet that is not working. Saved so it looked as if it was working, but testing it gives “Unable to connect to indexer, check the log for more details.”

Setting up Sonarr/Radarr via compose solved the jackett issue, which now allows the url to be hxxp://sonarr:##. (YEA!). ~ fix from ldexterldesign