Taxel / PlexTraktSync

A python script that syncs the movies, shows and ratings between trakt and Plex (without needing a PlexPass or Trakt VIP subscription)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Docker fails to start

CelticWebSolutions opened this issue · comments

Confirmation

  • I have read the README.md on the project homepage
  • I have checked if identical issue already exists
  • I have tried downgrading to find version that can be used as a workaround

The problem

When I launch docker compose I get the included errors. I've tried a fresh install but it refuses to run.

Error trace / logs

WARNING  plextraktsync without command is deprecated. Executing "plextraktsync  
         sync"                                                                  
INFO     PlexTraktSync [0.28.10]                                                
WARNING  Added default server to /app/config/servers.yml                        
Please enter your Plex username or e-mail: ERROR    EOF when reading a line                                                
         ╭───────────────── Traceback (most recent call last) ─────────────────╮
         │ /app/plextraktsync/cli.py:26 in wrap                                │
         │                                                                     │
         │    23 │   │   │   cmd = getattr(module, name)                       │
         │    24 │   │   │                                                     │
         │    25 │   │   │   try:                                              │
         │ ❱  26 │   │   │   │   cmd(*args, **kwargs)                          │
         │    27 │   │   │   except ClickException as e:                       │
         │    28 │   │   │   │   from plextraktsync.factory import logger      │
         │    29 │   │   │   │   logger.fatal(f"Error running {name} command:  │
         │                                                                     │
         │ /app/plextraktsync/commands/sync.py:44 in sync                      │
         │                                                                     │
         │   41 │   │   )                                                      │
         │   42 │   │   config.update(batch_delay=batch_delay)                 │
         │   43 │                                                              │
         │ ❱ 44 │   ensure_login()                                             │
         │   45 │   wc = factory.walk_config.update(movies=movies, shows=shows │
         │   46 │   w = factory.walker                                         │
         │   47                                                                │
         │                                                                     │
         │ /app/plextraktsync/commands/login.py:10 in ensure_login             │
         │                                                                     │
         │    7                                                                │
         │    8 def ensure_login():                                            │
         │    9 │   if not factory.has_plex_token:                             │
Error: Error running sync command: EOF when reading a line
         │ ❱ 10 │   │   plex_login_autoconfig()                                │
         │   11 │                                                              │
         │   12 │   if not has_trakt_token():                                  │
         │   13 │   │   trakt_login_autoconfig()                               │
         │                                                                     │
         │ /app/plextraktsync/commands/plex_login.py:187 in                    │
         │ plex_login_autoconfig                                               │
         │                                                                     │
         │   184 def plex_login_autoconfig():                                  │
         │   185 │   username = environ.get("PLEX_USERNAME", CONFIG["PLEX_USER │
         │   186 │   password = environ.get("PLEX_PASSWORD", None)             │
         │ ❱ 187 │   login(username, password)                                 │
         │   188                                                               │
         │   189                                                               │
         │   190 def plex_login(username, password):                           │
         │                                                                     │
         │ /app/plextraktsync/commands/plex_login.py:199 in login              │
         │                                                                     │
         │   196 │   │   if not Confirm.ask(PROMPT_PLEX_RELOGIN, default=True) │
         │   197 │   │   │   return                                            │
         │   198 │                                                             │
         │ ❱ 199 │   account = myplex_login(username, password)                │
         │   200 │   print(Panel.fit("Login to MyPlex was successful", title=" │
         │   201 │   │   │   │   │   title_align="left", padding=1, border_sty │
         │   202                                                               │
         │                                                                     │
         │ /app/plextraktsync/commands/plex_login.py:66 in myplex_login        │
         │                                                                     │
         │    63                                                               │
         │    64 def myplex_login(username, password):                         │
         │    65 │   while True:                                               │
         │ ❱  66 │   │   username = Prompt.ask(PROMPT_PLEX_USERNAME, default=u │
         │    67 │   │   password = Prompt.ask(PROMPT_PLEX_PASSWORD, password= │
         │       show_default=False)                                           │
         │    68 │   │   code = Prompt.ask(PROMPT_PLEX_CODE)                   │
         │    69 │   │   try:                                                  │
         │                                                                     │
         │ /usr/local/lib/python3.12/site-packages/rich/prompt.py:141 in ask   │
         │                                                                     │
         │   138 │   │   │   show_default=show_default,                        │
         │   139 │   │   │   show_choices=show_choices,                        │
         │   140 │   │   )                                                     │
         │ ❱ 141 │   │   return _prompt(default=default, stream=stream)        │
         │   142 │                                                             │
         │   143 │   def render_default(self, default: DefaultType) -> Text:   │
         │   144 │   │   """Turn the supplied default in to a Text instance.   │
         │                                                                     │
         │ /usr/local/lib/python3.12/site-packages/rich/prompt.py:274 in       │
         │ __call__                                                            │
         │                                                                     │
         │   271 │   │   while True:                                           │
         │   272 │   │   │   self.pre_prompt()                                 │
         │   273 │   │   │   prompt = self.make_prompt(default)                │
         │ ❱ 274 │   │   │   value = self.get_input(self.console, prompt, self │
         │   275 │   │   │   if value == "" and default != ...:                │
         │   276 │   │   │   │   return default                                │
         │   277 │   │   │   try:                                              │
         │                                                                     │
         │ /usr/local/lib/python3.12/site-packages/rich/prompt.py:203 in       │
         │ get_input                                                           │
         │                                                                     │
         │   200 │   │   Returns:                                              │
         │   201 │   │   │   str: String from user.                            │
         │   202 │   │   """                                                   │
         │ ❱ 203 │   │   return console.input(prompt, password=password, strea │
         │   204 │                                                             │
         │   205 │   def check_choice(self, value: str) -> bool:               │
         │   206 │   │   """Check value is in the list of valid choices.       │
         │                                                                     │
         │ /usr/local/lib/python3.12/site-packages/rich/console.py:2123 in     │
         │ input                                                               │
         │                                                                     │
         │   2120 │   │   │   if stream:                                       │
         │   2121 │   │   │   │   result = stream.readline()                   │
         │   2122 │   │   │   else:                                            │
         │ ❱ 2123 │   │   │   │   result = input()                             │
         │   2124 │   │   return result                                        │
         │   2125 │                                                            │
         │   2126 │   def export_text(self, *, clear: bool = True, styles: boo │
         ╰─────────────────────────────────────────────────────────────────────╯
         EOFError: EOF when reading a line                                      

Expected behavior

allows running of docker exec to setup

Steps to reproduce the behavior

Run docker compose in fresh instance.

Inspect of problematic items

unable run

Workarounds

No response

Install method

docker-compose

Config file contents

doe snot run to get as far as generating new config, did try manually putting default config in place, made no difference.

Version

0.28.10

Python Version

docker compose

Plex Server Version

4.118.0

Operating System and Version

Ubuntu with Docker

You gotta login first.

sudo docker-compose run plextraktsync login

the issue doesn't explain enough how is the Error trace / logs produced. no command is shared, or any other details. share exact details, so someone is able to understand what were you doing. or how is that log captured.

technically login command is invoked automatically if credentials are missing. and seen from the logs it was invkoked, but aborted. I'm guessing they ran the whatever command without terminal, so app can't ask input from terminal.

also title is incorrect, if your docker engine fails to start you should troubleshoot it in docker forums, support.