Sickchill: How to switch docker Linuxserver/Sickchill to Sickchill/Sickchill with python3

Created on 1 Sep 2020  路  26Comments  路  Source: SickChill/SickChill

Linuxserver does not update with the develop branch, only the master (which is the old Python 2.?), and I'd like to try out the Python3 version

Do I just create the new container and point it to my existing config folder?
Can I use the same config and db files? Or do I need to re-configure everything?

Thanks.

Question

All 26 comments

Issue-Label Bot is automatically applying the label Question to this issue, with a confidence of 0.93. Please mark this comment with :thumbsup: or :thumbsdown: to give our bot feedback!

Links: app homepage, dashboard and code for this bot.

https://github.com/SickChill/SickChill/issues/6545#issuecomment-674671204

Your config and DB will still work. Back up before just in case (as you always should) and make sure you have your volumes set correct for show root, download locations, config, etc.

OS: Docker on Synology running latest DSM

Some issues with migration attempt:

  • I copied my config folder from

    • /volume1/docker/sickchill/ to
    • /volume1/docker/sickchill2/
    • working from the docker-run example at sickchill/sickchill
    • volume assignments:
    • I left the right hand arguments unchanged
    • for the left hand arguments:

      • `path/to/shows --> the folder where I store the completed shows for viewing

      • /path/to/downloads --> the folder where nzbGet stores the completed downloads

      • /data --> the folder containing config.ini

      • /path/to/data/cache/gui --> I wasn't really sure what this was. I pointed it to what I think is the cache folder /volume1/docker/sickchill2/config/cache

      • localtime --> left as is after confirming that /etc/localtime exists

  • --user 1024:100: That is the uid:gid for admin, which works fine on the linuxserver/sickchill docker container.

My final setup code looks like:

docker run -dit --user 1024:100 --name sickchill2 --restart=always \
-v '/volume1/video/TV Shows':/path/to/shows \
-v /volume1/nzbGetDownloads/completed:/path/to/downloads \
-v /volume1/docker/sickchill2/config:/data \
-v /volume1/docker/sickchill2/config/cache:/app/sickchill/gui/slick/cache \
-v /etc/localtime:/etc/localtime:ro \
-p 8081:8081 sickchill/sickchill:develop
  • The container starts up and seems to run.
  • I selected a show to manually download, and it DID send the information to nzbGet which is currently downloading (slow internet so I won't know if it is successful and post-processes for an hour or two)

Note
Changed sickchill docker setup to:

docker run -dit --user 1024:100 --name sickchill2 --restart=always \
-v '/volume1/video/TV Shows':/tv \
-v /volume1/nzbGetDownloads/completed:/downloads \
-v /volume1/docker/sickchill2/config:/data \
-v /volume1/docker/sickchill2/config/cache:/app/sickchill/gui/slick/cache \
-v /etc/localtime:/etc/localtime:ro \
-p 8081:8081 sickchill/sickchill:develop

Questions:

  • Does the volume assignment for the fourth volume line appear correct?
  • The logged time is off by one hour -- seems to not be taking daylight savings time into account
  • Errors occur when I try to access the Help & Info page,

    • the UI (Microsoft Edge) shows a "This page isn't working right now" message.

    • the log flags an Error



      • the log shows:



2020-09-02 06:44:39 INFO :: WEBSERVER :: Starting SickChill on http://0.0.0.0:8081/
2020-09-02 06:44:39 INFO :: CHECKVERSION :: Version checking is disabled, not checking for the newest version
2020-09-02 06:48:03 ERROR :: WEBSERVER :: Uncaught exception GET /config/ (172.17.0.1)
HTTPServerRequest(protocol='http', host='192.168.1.15:8081', method='GET', uri='/config/', version='HTTP/1.1', remote_ip='172.17.0.1')
Traceback (most recent call last):
  File "/app/sickchill/lib3/tornado/web.py", line 1703, in _execute
    result = await result
  File "/app/sickchill/lib3/tornado/gen.py", line 742, in run
    yielded = self.gen.throw(*exc_info)  # type: ignore
  File "/app/sickchill/sickchill/views/index.py", line 160, in get
    results = yield self.async_call(method)
  File "/app/sickchill/lib3/tornado/gen.py", line 735, in run
    value = future.result()
  File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/app/sickchill/sickchill/views/index.py", line 183, in async_call
    return function(**kwargs)
  File "/app/sickchill/lib3/tornado/web.py", line 1912, in wrapper
    return method(self, *args, **kwargs)
  File "/app/sickchill/sickchill/views/config/index.py", line 39, in index
    sc_user = pwd.getpwuid(os.getuid()).pw_name
KeyError: 'getpwuid(): uid not found: 1024'

Your thoughts?

Thanks. Ron

NOTE: After the download completed in nzbGet, got message from nzbGet that PP-Failed.

I was able to execute a manual post-process routine sucessfully from Sickchill, but not the automatic one from nzbGet.

I verified that the proper folder is listed as the post-processing directory in SickChill.

And Manual post-processing worked OK.

  • I did not enable debug because, when I did this previously, there would be 1-2 messages per second being written to the log, as shown below, so I wanted to check with you first to see if there is something obvious I am missing.
2020-09-02 09:06:56 INFO :: WEBSERVER :: 200 POST /errorlogs/viewlog/ (172.17.0.1) 60.62ms
2020-09-02 09:06:56 INFO :: WEBSERVER :: 200 POST /errorlogs/viewlog/ (172.17.0.1) 61.43ms
2020-09-02 09:06:55 INFO :: WEBSERVER :: 200 POST /errorlogs/viewlog/ (172.17.0.1) 60.58ms
2020-09-02 09:06:55 INFO :: WEBSERVER :: 200 POST /errorlogs/viewlog/ (172.17.0.1) 60.76ms
2020-09-02 09:06:54 INFO :: WEBSERVER :: 200 POST /errorlogs/viewlog/ (172.17.0.1) 60.40ms
2020-09-02 09:06:54 INFO :: WEBSERVER :: 200 POST /errorlogs/viewlog/ (172.17.0.1) 65.10ms
2020-09-02 09:06:54 INFO :: WEBSERVER :: 200 GET /ui/get_messages (172.17.0.1) 2.16ms
2020-09-02 09:06:53 INFO :: WEBSERVER :: 200 POST /errorlogs/viewlog/ (172.17.0.1) 62.11ms
2020-09-02 09:06:53 INFO :: WEBSERVER :: 200 POST /errorlogs/viewlog/ (172.17.0.1) 60.03ms
2020-09-02 09:06:52 INFO :: WEBSERVER :: 200 POST /errorlogs/viewlog/ (172.17.0.1) 61.69ms
2020-09-02 09:06:52 INFO :: WEBSERVER :: 200 POST /errorlogs/viewlog/ (172.17.0.1) 60.67ms
2020-09-02 09:06:51 INFO :: WEBSERVER :: 200 POST /errorlogs/viewlog/ (172.17.0.1) 61.17ms
2020-09-02 09:06:51 INFO :: WEBSERVER :: 200 POST /errorlogs/viewlog/ (172.17.0.1) 60.18ms
2020-09-02 09:06:51 INFO :: WEBSERVER :: 200 GET /ui/get_messages (172.17.0.1) 2.19ms
2020-09-02 09:06:50 INFO :: WEBSERVER :: 200 POST /errorlogs/viewlog/ (172.17.0.1) 60.03ms
2020-09-02 09:06:50 INFO :: WEBSERVER :: 200 POST /errorlogs/viewlog/ (172.17.0.1) 60.64ms
2020-09-02 09:06:49 INFO :: WEBSERVER :: 200 POST /errorlogs/viewlog/ (172.17.0.1) 60.47ms
2020-09-02 09:06:49 INFO :: WEBSERVER :: 200 POST /errorlogs/viewlog/ (172.17.0.1) 61.45ms
2020-09-02 09:06:48 INFO :: WEBSERVER :: 200 POST /errorlogs/viewlog/ (172.17.0.1) 66.67ms
2020-09-02 09:06:48 INFO :: WEBSERVER :: 200 POST /errorlogs/viewlog/ (172.17.0.1) 63.20ms
2020-09-02 09:06:48 INFO :: WEBSERVER :: 200 POST /ui/set_site_message (172.17.0.1) 2.84ms
2020-09-02 09:06:48 INFO :: WEBSERVER :: 200 GET /ui/get_messages (172.17.0.1) 2.00ms
2020-09-02 09:06:48 INFO :: WEBSERVER :: 204 GET /ui/locale.json (172.17.0.1) 2.18ms
2020-09-02 09:06:47 INFO :: WEBSERVER :: 200 GET /errorlogs/viewlog/ (172.17.0.1) 63.38ms
2020-09-02 09:06:46 INFO :: WEBSERVER :: 200 GET /ui/get_messages (172.17.0.1) 2.14ms
2020-09-02 09:06:44 INFO :: WEBSERVER :: 200 GET /config/general/ (172.17.0.1) 36.13ms

Im pushing a fix for when you use --user (it isn't going to show the correct user in help/info, just the uid)

For timezone, try:

  - "/etc/timezone:/etc/timezone:ro"
  - "/etc/localtime:/etc/localtime:ro"

Updated container will be available after this run completes:
https://github.com/SickChill/SickChill/actions/runs/236970302

  • Installed the updated container this morning to version 09609b0217aa48c633016b3770b59441bb80bfde

    • I can now access Help & Info.

    • It shows user as 1024



      • User 1024 is admin in the system. Should I be setting those variables differently in the docker/run script?



    • Still have the 2 messages per second when enabling debug.log as above.

    • Is that expected behavior?

    • When I disable debug, the log continues to log those 2perSecond messages until I restart Sickchill (this was the same behavior as before the update).

    • When sickchill starts, I see error message:

       WEBSERVER-HOME_0 :: Could not open static file 'app/sickchill/sickchill/gui/slick/images/network/kan 11.png
  • I'm guessing it's harmless but wonder if I have the cache volume mapped correctly since that volume seems to be named differently from what is in the docker/run script provided.

Thanks.
Ron

Yes, your cache is mapped wrong. You see the correct path in that log line ^... The GUI is moved into the sickchill folder now.

The tornado.access log messages are a bug that I can't figure out yet.

Actually, I know why those logs are that way, I'll push a fix for them later =P

When this build is done: https://github.com/SickChill/SickChill/actions/runs/238058798
Pull the new image and make your cache volume: volume1/docker/sickchill2/config/cache:/app/sickchill/sickchill/gui/slick/cache

For the username, it should work fine with just showing the uid. We do not have gosu set up in our container like linuxserver (not really needed)

Then you pass TZ=YourTimeZone as an environment variable to the container.

OK. TZ worked. Times are now correct.

Just downloaded current image a few hours ago.

Changed line for cache to:

-v /volume1/docker/sickchill2/config/cache:/app/sickchill/sickchill/gui/slick/cache \

  • Still getting error messsage on startup could not open static file 'app/...
  • NONE of the show pictures are present. Seeing only the generic Sickchill posters

    • Hmmm. Examining the cache folder in my /volume1/docker/sickchill2/config/cache, it seems the images subfolder has disappeared! What might have caused that? I have that folder saved in a backup -- can I just copy it over?

Hmmm. The missing images seem to have been re-created overnight.
I guess if I had a faster internet, might not even have noticed.
One more problem with post-processing to run down, now that I can go into debug mode.

Probably not in your area, but maybe you have some ideas about this:

  • Post-processing script from nzbGet no longer works with the Python3 version of SickChill

    • Worked fine with the Python 2.7 version.

    • I've not changed any settings within Sickchill or nzbGet configs.

    • Both seem to be able to communicate with each other based on log entries

    • Manual post-processing from within SickChill works as expected.

    • nzbGet puts the completed downloads into the same file that shows up when I select to either setup downloads or execute manual downloads from within SickChill

  • Don't believe it would be a permission as the downloaded folder (and children) permissions are all 777

sickchill Log

2020-09-04 08:05:00 INFO :: WEBSERVER-POSTPROCESS_0 :: Beginning manual post processing task: Shtisel.S02E07.720p.NF.WEB-DL.DD.2.0.H.264-NYH-Rakuvfinhel
2020-09-04 08:05:00 DEBUG :: WEBSERVER-POSTPROCESS_0 :: Unable to figure out what folder to process. If your downloader and SickChill aren't on the same PC make sure you fill out your TV download dir in the config.
2020-09-04 08:05:00 INFO :: WEBSERVER-POSTPROCESS_0 :: Manual post processing task for Shtisel.S02E07.720p.NF.WEB-DL.DD.2.0.H.264-NYH-Rakuvfinhel completed
  • The reason seems apparent from the log entry, but do you have any ideas why there should be this change, or how to proceed?

Thanks.
Ron

Seems I spoke to soon about the safe return of the images folder in cache.

Just noticed it is gone, again.

Is it possible it is getting deleted whenever I restart (or recreate) this Sickchill container?

Move it outside of your external config mount.

/volume1/docker/sickchill2/cache:/app/sickchill/sickchill/gui/slick/cache
/volume1/docker/sickchill2/config:/data

Still having the same problem with images being deleted. (They do get recreated during the night, I guess with the nightly REFRESH).

This morning I

  • copied the cache folder to the new location root@DS718:/volume1/docker/sickchill2/config# cp -r cache /volume1/docker/sickchill2
  • pulled the :latest docker pull sickchill/sickchill
  • Installed the latest docker
Digest: sha256:0563de67e80ffa59dbe98f947f0ad327a9c70b03a7c72422a4ab12ec22d77719
Status: Downloaded newer image for sickchill/sickchill:latest
root@DS718:~# docker stop sickchill2
sickchill2
root@DS718:~# docker rm sickchill2
sickchill2
root@DS718:~# docker run -dit --user 1024:100 --name sickchill2 --restart=always \
-p 8081:8081 sickchill/sickchill:latest> 
-v '/volume1/video/TV Shows':/tv \
> -v /volume1/nzbGetDownloads:/downloads \
> -v /volume1/docker/sickchill2/config:/data \
> -v /volume1/docker/sickchill2/cache:/app/sickchill/sickchill/gui/slick/cache \
> -v /etc/localtime:/etc/localtime:ro \
> -e TZ=America/New_York \
> -p 8081:8081 sickchill/sickchill:latest
8bf699ca2078695dee4c4f895eda81aaee7de7f534e75615d12777120001c3f8

When I restarted Sickchill, I received a warning message

 WARNING :: MAIN :: Unable to remove the cache/mako directory
  • I navigated to the newly copied cache folder and noted that it had owner/group of root/root, whereas everything else was admin/users, so I chown -R admin:users cache

  • I then restarted sickchill from the UI, and it deleted both the mako and the images subfolders from the new cache folder at :/volume1/docker/sickchill2/cache

Supporting these new changes and also having a new baby ... wow! you must have incredible stamina!

could not open static file is not a cache error smh, that is a legit missing network image. I reduced that log level to critical level so you won't see it anymore.

could not open static file is not a cache error smh, that is a legit missing network image. I reduced that log level to critical level so you won't see it anymore.

Thanks for doing that.
But have you seen my latest post above? Even in the new location/mount point, the images folder is getting deleted whenever SickChill restarts (and also the mako folder, but I don't know what that does).

It didn't delete the images folder, it moved it to the correct location, somewhere under /volume1/docker/sickchill2/config

What am I misunderstanding or doing incorrectly?

  • with a forced update, the images and mako folders will reappear under /volume1/docker/sickchill2/cache and the show list posters will also reappear.

  • Working from a condition where the poster images are present:

    • I examine /volume1/docker/sickchill2/cache and note the images folder is present.
    • I restart Sickchill from the UI
    • After restart,

      • On the show list page, the poster images are gone (just a generic rectangle showing "SickChill"

      • the images folder at /volume1/docker/sickchill2/cache has been removed

    • I then select Update from the Mass Update page
    • After a while, the images folder is recreated, and the images start getting transferred into it from the show folders
2020-09-06 15:28:00 INFO :: SHOWQUEUE-FORCE-UPDATE :: Performing refresh on Grace and Frankie
2020-09-06 15:28:00 INFO :: SHOWQUEUE-FORCE-UPDATE :: 282562: Updating NFOs for show with new indexer info
2020-09-06 15:28:00 INFO :: SHOWQUEUE-FORCE-UPDATE :: Image cache dir didn't exist, creating it at /app/sickchill/sickchill/gui/slick/cache/images
2020-09-06 15:28:00 INFO :: SHOWQUEUE-FORCE-UPDATE :: Thumbnails cache dir didn't exist, creating it at /app/sickchill/sickchill/gui/slick/cache/images/thumbnails
2020-09-06 15:28:00 INFO :: SHOWQUEUE-FORCE-UPDATE :: Copying from /tv/Grace and Frankie/banner.jpg to /app/sickchill/sickchill/gui/slick/cache/images/282562.banner.jpg

If I do another restart, the same process recurs.
If I don't do a manual mass update, the images will probably get restored during the nightly refresh.

Oh, and the folder mentioned in the log /app/sickchill/sickchill/gui/slick/cache/ is ?mapped to? the folder I am examining in the external system: /volume1/docker/sickchill2/cache

Is this behavior by design?
It seems odd to me. It was not an issue previously -- I could restart SickChill/Python2.7 without (temporarily) losing the poster images.

Just take the cache line out
My mounts are:

      - $USERDIR/sickchill:/config
      - /RAID1:/RAID1 # Show dirs, download dirs, etc are all under this mount
      - $USERDIR/sickchill:/data

Sickchill will automatically put your cache in the data folder

OK, I think it is working now.
I just have to do some cleanup.
Thanks very much for helping me to get this working.

By the way, can updates to this version of sickchill be done within the running container? Or do I have to use watchtower or manually rm and create anew?

Honestly I'm not sure. I think the updater will work, but I personally use watchtower because I use it with everything else.

Thanks. I tried updating from the UI, and it seems to have worked. It's an easier process for me because, unless I'm troubleshooting, I rarely SSH into my Synology NAS.

Was this page helpful?
0 / 5 - 0 ratings