JackDallas / Premiumizearr

Bridge your *Arr clients (Sonarr, Radarr) to your premiumize.me (upload/download manager)
GNU General Public License v3.0
44 stars 8 forks source link

Can't start Docker image #38

Closed rkershenbaum closed 2 years ago

rkershenbaum commented 2 years ago

Here's what I'm seeing:
`richard@Mythtv:/mnt/Media/Premiumizearr$ docker run ghcr.io/jackdallas/premiumizearr:latest /mnt/media/config.yaml:/opt/app/config.yaml \

-v /mnt/Media/downloads:/downloads \ -v /mnt/blackhole:/blackhole time="2022-05-24T22:05:48Z" level=info msg="---------- Starting premiumizearr daemon ----------" time="2022-05-24T22:05:48Z" level=info panic: Default config created, please fill it out

goroutine 1 [running]: github.com/jackdallas/premiumizearr/internal/config.LoadOrCreateConfig({0x0, 0x7f9889ea0998}) /home/runner/work/Premiumizearr/Premiumizearr/internal/config/config.go:127 +0x2da main.main() /home/runner/work/Premiumizearr/Premiumizearr/cmd/premiumizearrd/main.go:75 +0x50a ` From the log:

`richard@Mythtv:/mnt/Media/Premiumizearr$ docker logs silly_merkle time="2022-05-24T22:05:48Z" level=info msg="---------- Starting premiumizearr daemon ----------" time="2022-05-24T22:05:48Z" level=info panic: Default config created, please fill it out

goroutine 1 [running]: github.com/jackdallas/premiumizearr/internal/config.LoadOrCreateConfig({0x0, 0x7f9889ea0998}) /home/runner/work/Premiumizearr/Premiumizearr/internal/config/config.go:127 +0x2da main.main() /home/runner/work/Premiumizearr/Premiumizearr/cmd/premiumizearrd/main.go:75 +0x50a time="2022-05-24T22:09:29Z" level=info msg="---------- Starting premiumizearr daemon ----------" time="2022-05-24T22:09:29Z" level=info time="2022-05-24T22:09:29Z" level=info msg="Starting directory watcher..." time="2022-05-24T22:09:30Z" level=error msg="Error getting folders: error" time="2022-05-24T22:09:30Z" level=fatal msg="Cannot read folders from premiumize.me, exiting!" time="2022-05-24T22:12:15Z" level=info msg="---------- Starting premiumizearr daemon ----------" time="2022-05-24T22:12:15Z" level=info time="2022-05-24T22:12:15Z" level=info msg="Starting directory watcher..." time="2022-05-24T22:12:16Z" level=error msg="Error getting folders: error" time="2022-05-24T22:12:16Z" level=fatal msg="Cannot read folders from premiumize.me, exiting!" `

JackDallas commented 2 years ago

Hey, so just to clarify have you filled out the fields in /mnt/media/config.yaml that should have generated ?

Lloytron commented 2 years ago

I had this issue just now. I found that the config.yaml file was being created as a folder and not a file. I think this is a quirk of docker when mapping files that don't exist yet.

So I stopped the containers, deleted file folder and setup the file. Re ran and it found everything.

rkershenbaum commented 2 years ago

I've gotten the container to start using the following:

docker run \ --name Premiumizearr \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=America/Chicago \ -p 8182:8182 \ -v /mnt/Media/downloads:/downloads \ -v /mnt/blackhole:/blackhole \ ghcr.io/jackdallas/premiumizearr:latest /mnt/Media/Premiumizearr/config.yaml:/opt/app/config.yaml

However, the config.yaml file is being created at:

/var/lib/docker/overlay2/6b051c33265e36a45143a400d77fb0e0b935124933826878e6e282bfe3246e96/diff/opt/app/config.yaml

Lloytron commented 2 years ago

When I did this last night it made a folder called config.yaml, not a file. Apparently this is a known issue with Docker on OSX. Can you check if the same has happened to you?

The file will always be stored at /var/lib/docker etc because it's creating a symlink to where you specify but if that file does not actually exist on the desired mapped destination folder then for some reason it creates a folder, not a file.

I had to delete the folder and download the file directly from github and put it in the relevant folder. Might be worth editing it with your settings at this point. So try downloading this and storing it at /mnt/Media/Premiumizearr/

This is the config.yaml file; https://raw.githubusercontent.com/JackDallas/Premiumizearr/main/config.yaml

rkershenbaum commented 2 years ago

Ok, I created the config.yaml file at /mnt/Media/Premiumizearr/:

PremiumizemeAPIKey: [my-api-key] `Arrs:

Now when I start the container, it quickly ends with this in the logs:

time="2022-05-25T19:06:43Z" level=info msg="---------- Starting premiumizearr daemon ----------" time="2022-05-25T19:06:43Z" level=info time="2022-05-25T19:06:43Z" level=info msg="Starting directory watcher..." time="2022-05-25T19:06:44Z" level=error msg="Error getting folders: error" time="2022-05-25T19:06:44Z" level=error msg="Error getting folders: error" time="2022-05-25T19:06:44Z" level=fatal msg="Cannot read folders from premiumize.me, exiting!"

Lloytron commented 2 years ago

Here is my setup, minus the keys and URLs;

I had that issue too and I can't remember what I did to get around it (I was playing at 3AM :D)

But note that my directories do not have quotation marks

PremiumizemeAPIKey: API-KEY Arrs:

rkershenbaum commented 2 years ago

Thanks, Lloytron. I removed the quotes, and configured the file as your is configured, except for the location of the directories. I'm still getting the same errors.

I think I'm going to give up on this for now, and continue using the Premiumizer program, which works pretty well most of the time.

JackDallas commented 2 years ago

Ok, I created the config.yaml file at /mnt/Media/Premiumizearr/:

PremiumizemeAPIKey: [my-api-key] `Arrs:

  • Name: "Sonarr" URL: http://localhost:8989 APIKey: [my-api-key] Type: Sonarr
  • Name: "Radarr" URL: http://localhost:7878 APIKey: [my-api-key] Type: Radarr BlackholeDirectory: "/blackhole" DownloadsDirectory: "/downloads" UnzipDirectory: "/downloads" bindIP: 192.168.1.78 bindPort: "8182" WebRoot: "Premiumizearr"

Now when I start the container, it quickly ends with this in the logs:

time="2022-05-25T19:06:43Z" level=info msg="---------- Starting premiumizearr daemon ----------" time="2022-05-25T19:06:43Z" level=info time="2022-05-25T19:06:43Z" level=info msg="Starting directory watcher..." time="2022-05-25T19:06:44Z" level=error msg="Error getting folders: error" time="2022-05-25T19:06:44Z" level=error msg="Error getting folders: error" time="2022-05-25T19:06:44Z" level=fatal msg="Cannot read folders from premiumize.me, exiting!"

This will only be because of the api key, there could be an issue reading it hmm, I'm going away today but when I'm back next week I'll try testing docker out a bit more fully, I just run it as a systemd service atm so haven't been able to fully test it

JRDevo commented 2 years ago

I saw this issue a few times a little while back panic: Default config created, please fill it out - I cant remember exactly but managed to have some success with either the combination of the CLI below and/or "Volume mapping" the yaml in Portainer as a bind.

sudo docker run -d \
  --name=Premiumizearr \
  -v /volumeUSB2/usbshare/config/premiumizearr/config.yaml:/opt/app/config.yaml \
  -e PUID=1033 \
  -e PGID=100 \
  -e TZ=Europe/Amsterdam \
  -p 8182:8182 \
  -v /volume1/Downloads:/downloads \
  -v /volumeUSB2/usbshare/downloads/blackhole:/blackhole \
  --restart unless-stopped \
  ghcr.io/jackdallas/premiumizearr:latest

My host has a copy of the yaml at: /volumeUSB2/usbshare/config/premiumizearr/config.yaml

JRDevo commented 2 years ago

This will only be because of the api key, there could be an issue reading it hmm, I'm going away today but when I'm back next week I'll try testing docker out a bit more fully, I just run it as a systemd service atm so haven't been able to fully test it

For docker, It may help to somehow get the variables in the .yaml mapped to the dockers environment variables, that way all the config details are passed during the creation of the container and can be edited later.

-e PremiumizemeAPIKey: xxxxxxxxx \
-e SonarrIP: localhost \ 
-e SonarrPORT:8989 \
-e SonarrAPIKey: xxxxxxxxx \
-e RadarrIP: xxxxxxxxx \
-e RadarrPORT:7878\
-e RadarrAPIKey: xxxxxxxxx \

Or prob best to add a dialog or window in the UI to edit the config.yaml once the web ui is up. I suspect this may be the most platform agnostic approach :)

rkershenbaum commented 2 years ago

I was able to start the app successfully using by the volume mapping method.

docker run \ --name Premiumizerarr \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=America/Chicago \ -p 8182:8182 \ -v /mnt/Media/downloads:/downloads \ -v /mnt/Media/blackhole:/blackhole \ -v /mnt/Media/Premiumizearr/config.yaml:/opt/app/config.yaml \ ghcr.io/jackdallas/premiumizearr:latest

That said, I agree that the best solution would be the ability to enter the parameters through the web interface.

JackDallas commented 2 years ago

I 100% agree, I'm gonna close this and start a disscussion here about the web ui https://github.com/JackDallas/Premiumizearr/issues/38 I'd appreciate any suggestion ya'll have :)