#Kometa asset mount not seeing assets

1 messages · Page 1 of 1 (latest)

covert granite
#

I am using Kometa via Docker compose and am using Tiny Media Manager to get my assets in order for an existing library. I have Kometa building overlays, but it has been overwriting the posters when run. I decided to mount the existing libary folder as an asset folder in Kometa. I can shell into the kometa container and see the library files within the mounted folder, but when Kometa runs it cant seem to find any of the assets. I stopped the container and see the mount folders that were created, and inside it appears Kometa created a bunch of folders for my movies underneath the mount. I'm guessing this is why it wasn't detecting the files. How can I remedy this?

I am using mounts as I do with my other 50 containers. It works fine if I put the assets into the folder Kometa creates under the mount, but I was hoping it would just read in the existing assets from the mount.

// config.yml
  asset_directory:
    #- config/assets
    - config/mnt/movies
    - config/mnt/series

// compose
  kometa:  
    container_name: plex_kometa
    image: lscr.io/linuxserver/kometa:latest
    environment:
      - PUID=0
      - PGID=0
      - TZ=America/New_York
      - KOMETA_CONFIG=/config/config.yml #optional
      - KOMETA_TIME=21:00 #optional
      - KOMETA_RUN=false #optional
      - KOMETA_TEST=False #optional
      - KOMETA_NO_MISSING=False #optional
    volumes:
      - /nfs/dockerdata/plex/kometa/config:/config 
      - /nfs/data/Torrent/Movies:/config/mnt/movies
      - /nfs/data/Torrent/Series:/config/mnt/series
    restart: on-failure
next ravineBOT
#

Welcome @covert granite!

It looks like you have not yet completed the id:customize section of our Discord server, this will allow us to help you quicker.

Someone from <@&938443185347244033> will assist when they're available.

Including meta.log from the beginning is a huge help. Type !logs for more information.

After attaching your log, do not forget to hit the green check boxes when prompted by our bot.

#

You can press the "Close Post" button above or type /close at any time to close this post.

old star
#

More specifics needed.

What are the paths being used for all these things. and where is the container are these directories being created?

What are the asset directories set to in the config?

Please provide a log showing this happening.

covert granite
#

I provided the compose and lines from the config. The log just says it couldn't find the folder for and created it.

lapis thistle
#

Your mount points are probably throwing off Kometa, to be honest

old star
#

Where specifically inside the container is Kometa creating asset folders?

Two things:

  1. You're using the LSIO image, which is arranged internally differently to the official image. Perhaps this is a factor.
  2. You may want to set the asset directory paths to absolute paths like /config/mnt/movies due to that.
covert granite
#

Kometa creates the mnt/movies folder int /config/ so - config/mnt/movies. When I shell into the container I can see the proper files from the mount. However, when Kometa runs, it creates its own /movies folder in /config/mnt/ and creates the asset folders for each movie there. If I copy an asset to the folder "under the mount" Kometa detects and uses it properly, but shouldn't it just read the data from the mount?

covert granite
old star
covert granite
#

Gotcha. I'll test that.

old star
#

In the LSIO image, kometa.py is down in some app directory. In the official, it's sitting in the root of the filesystem.

covert granite
#

Updating paths didn't work. I'll try the official image next. Here's the shell within the container. I shortened the list of moves, but you can see that the container has access and shows proper mount data.

root@0523666f8395:/config# ls
'- example'  '- main'  '- minimal'  'Movie Collections.yml'   UUID   assets   config.cache   config.yml   config.yml.template   logs   missing   mnt   overlays
root@0523666f8395:/config# cd mnt
root@0523666f8395:/config/mnt# ls
series  movies
root@0523666f8395:/config/mnt# cd movies
root@0523666f8395:/config/mnt/movies# ls
'10 Things I Hate About You (1999) {tmdb-4951}'
'180° South (2010) {tmdb-39333}'
'1958 NFL Championship Game Baltimore Colts vs New York Giants @ Yankee Stadium December 28 (1958) {tmdb-}'
'Damsel (2024) {tmdb-763215}'
'Dark Star (1974) {tmdb-1410}'
root@0523666f8395:/config/mnt/movies# 
#

So, for instance, it doesn't see this data and creates its own movie folders that I can see from viewing the nfs share directly. Strange behavior.

old star
#

Given the lack of a log or specifics as to what directories are being not found and created, all one can do is guess, but another possible issue is that the asset directory names are validated such that they are valid across all platforms, so perhaps special characters are getting in the way?

old star
#

What if you get rid of the overlapping volume maps:

    volumes:
      - /nfs/dockerdata/plex/kometa/config:/config 
      - /nfs/data/Torrent/Movies:/asset/movies
      - /nfs/data/Torrent/Series:/asset/series

and

  asset_directory:
    #- config/assets
    - /asset/movies
    - /asset/series
covert granite
#

Ok. I got the official image loaded and ran. I also updated and verified the mounts. Same issue. Here's the meta.log.

next ravineBOT
#

📝 If you want to review this again, darkstarx1:
:one: Right-click (or long press with phone) on the message that contains the log
:two: Select: Copy Message Link
:three: Use the command: /logscan <message_link> or !logscan <message_link> and paste the value copied from the previous step where you see <message_link> 📝

old star
#

What does "updated and verified the mounts" mean specifically?

covert granite
#

I changed their names and verified they were properly mounted in nfs and also within the container showing the correct data in the mounts.

#

I have not explored your idea about 'overlapping' volume maps yet.

#

My guess is if I remove the docker nfs mount from th container it'll just use the container's folder... which it does already.. but the actual mount data won't be visible from inside the container as it is when mounted.

old star
#

I think the map inside the map is a contributory factor here

covert granite
#

It could be. It is strange that all data is visible within the container when mounted yet Kometa doesn't see it./

#

Kometa cannot see the nfs mount

| Config Warning: Path does not exist: /nfs/data/Torrent/Movies                                      |
| Config Warning: No Paths exist using None as default   
old star
covert granite
#

Right.. just confirming that it'll never work without the mount mapping in docker compose.

old star
covert granite
#

I just did it for my sanity check

old star
#

I think the issue is mapping one directory into a location inside another mapped directory.

covert granite
#

Reading this.. creating a mount point in docker compose pointing to my assets should work. "Assets can be stored anywhere on the host system that Kometa has visibility of (i.e. if using docker, the directory must be mounted/visible to the docker container).

For the sake of this document, we will assume that your assets folders are all based within the directory mapped to config within your Kometa environment."

old star
#

one thing:

    reapply_overlays: true

This will just extend runtime and cause Plex bloat for no particular purpose

covert granite
#

The container shell can see the data, but Kometa cannot. Yeah I'm still in the dev stage here so there's probably more bloat in there.

old star
covert granite
#

I was under the impression that if my media assets resided in the folder along with the movie I could use this folder for an asset folder. How would I get my movie library within Kometa without doing so?

old star
#

I made a suggestion above.

#

This accomplishes what you want without the nested maps:
#1442528911094186086 message

covert granite
#

I alreayd have ..

  asset_directory:
    #- config/assets
    - config/mnt/torrent_movies
#

obviously '/mnt' here is just a folder i created outside of the '/asset' folder

old star
#

The asset directory in that log doesn't match what you've been saying in this thread:

  asset_directory:
    #- config/assets
    - config/mnt/torrent_movies
    #- config/mnt/torrent_series

You don't have anything mapped into the container at config/mnt/torrent_movies according to what you've reported here.

#
    volumes:
      - /nfs/dockerdata/plex/kometa/config:/config 
      - /nfs/data/Torrent/Movies:/config/mnt/movies
      - /nfs/data/Torrent/Series:/config/mnt/series
covert granite
#

that is old.. here's what I am using now

    volumes:
      - /nfs/dockerdata/plex/kometa/config:/config 
      - /nfs/data/Torrent/Movies:/config/mnt/torrent_movies
      - /nfs/data/Torrent/Series:/config/mnt/torrent_series
      #- /nfs/video/Movie:/config/mnt/movieshelf      
      #- /nfs/video/Series:/config/mnt/series
    #restart: unless-stopped
old star
#

All we can go by is what you post here.

#

So what else do I need to know before I waste any more time running experiments

covert granite
#

it's all essentially the exact same thing as originally stated.. when I updated the image I also made changes to the folder mounts which I stated in the previous message. right now it's the same. the docker nfs mounts mapped to container locations as per above. as before, i can shell into the kometa container and see all the data on the mount fine. running kometa cannot see the mounted data and creates folder (if configured) in the nfs mount which I can see by browsing '/config/mnt/torrent_movies' outside the container

old star
#

Have you tried my suggestion to eliminate the nested maps?

#

I was going to try to reproduce this, but I can't target "essentially the same"

#

I can guess, but then there's a non-zero chance of "oh I changed this other thing to so that no longer applies"

covert granite
#

I can help you reproduce in a step by step very easily if needed.

#

it's short and simple

#

I have 50 other containers running using nfs mounts!

old star
#

I am not suggesting it's the nfs mounts per se

covert granite
#

If the container shell can see the data, why does Kometa not see it too? That's the mystery.

#

I appreciate your help. I'm doing my best to understand and solve.

#

I would imagine this would be easily reproduced as I'm not doing anything wild.

old star
#

This is not anything I have seen before, and the one unusual thing you have going on is this:

    volumes:
      - /nfs/dockerdata/plex/kometa/config:/config 
      - /nfs/data/Torrent/Movies:/config/mnt/torrent_movies
      - /nfs/data/Torrent/Series:/config/mnt/torrent_series

If this were happening to me, the first thing I would try would be to unwind that so that the media directory volume maps were not located inside the /config volume map.

covert granite
#

I can remap them outside of that folder

old star
#

As suggested here:
#1442528911094186086 message

covert granite
#

I just mounted outside of config to '/mnt/torrent_movies' data is still visible.

root@4f33d681d726:/# cd mnt
root@4f33d681d726:/mnt# cd torrent_movies
root@4f33d681d726:/mnt/torrent_movies# ls
'10 Things I Hate About You (1999) {tmdb-4951}'
'180° South (2010) {tmdb-39333}'
'1958 NFL Championship Game Baltimore Colts vs New York Giants @ Yankee Stadium December 28 (1958) {tmdb-}'
'20,000 Leagues Under the Sea (1954) {tmdb-173}'
'28 Days Later (2002) {tmdb-170}'
'28 DaysWeeksYears Later Collection'
'28 Years Later (2025) {tmdb-1100988}'
'3-10 to Yuma (2007) {tmdb-5176}'
'300 (2007) {tmdb-1271}'
'8-Bit Christmas (2021) {tmdb-802217}'
#

I will now update kometa config and run

#
| Config Warning: Path does not exist: /mnt/torrent_movies                                           |
| Config Warning: No Paths exist using None as default  
#

I am using this to run:

docker run --rm -it -v "/nfs/dockerdata/plex/kometa/config:/config:rw" kometateam/kometa --name "ok" --run -rl "Now Playing"
old star
#

That docker command is creating a brand new container that has nothing to do with the one created by docker-compose.

covert granite
#

Maybe if I run it within the shell? I can't remember if I tried that or not. Need to find the syntax.

old star
covert granite
#

I assumed it wouldn't matter since it reads the config and operated in the context of the kometa config

old star
covert granite
#

I'm looking for the syntax to try within the container. I think it was kometa.py?

old star
#

This command:

docker run --rm -it -v "/nfs/dockerdata/plex/kometa/config:/config:rw" kometateam/kometa --name "ok" --run -rl "Now Playing"

Creates a brand new container, runs the script, which produces an error, then thanks to --rm that temporary container gets deleted afterwards.

old star
#

or do:

docker run --rm -it \
  -v "/nfs/dockerdata/plex/kometa/config:/config" \
  -v "/nfs/data/Torrent/Movies:/mnt/torrent_movies" \
  -v "/nfs/data/Torrent/Series:/mnt/torrent_series" \
  -e "PUID=0" \
  -e "PGID=0" \
  -e "TZ=America/New_York" \
  -e "KOMETA_RUN=true" \
  -e "KOMETA_RUN_LIBRARIES=Now Playing" \
  kometateam/kometa

That spins up an ephemeral container with the desired config and deletes it afterward.

covert granite
#

i will try this.

#

i couldn't see the output, so i am trying within the container

#

from inside i use "python kometa.py --collections-only --run" and i keep getting a scheduler output.

old star
#

Don't know; I do these things pretty often without seeing what you're describing.

covert granite
#

I shell into the docker container..

root@4f33d681d726:/# python kometa.py --config /config/config.yml
| Current Time: 16:44 | 4 Hours and 16 Minutes until the next run at 21:00 | Runs: 21:00
old star
#

You need to add --run to make it run immediately

old star
covert granite
#

I was about to update that command as I tried it.

root@4f33d681d726:/# python kometa.py --config /config/config.yml --run
| Current Time: 16:46 | 4 Hours and 14 Minutes until the next run at 21:00 | Runs: 21:00
old star
#

Oh, wait, you have KOMETA_RUN=False set on the container.

That overrides the runtime --run flag

covert granite
#

I recall having some run loop issues with it on, so I disabled it.

#

Let me try your docker approach with the paths

old star
#

The loop problem is due to the restart policy you have set

#

The only one of these:

      - KOMETA_CONFIG=/config/config.yml #optional
      - KOMETA_TIME=21:00 #optional
      - KOMETA_RUN=false #optional
      - KOMETA_TEST=False #optional
      - KOMETA_NO_MISSING=False #optional

That you should have set is

      - KOMETA_TIME=21:00 #optional
#

The rest are the default values and there is typically no reason to set them explicitly.

#

If you want to use

      - KOMETA_RUN=true

You need to set:

    restart: never

To avoid docker restarting the container when it exits and ending up in a loop.

The entire point of KOMETA_RUN=true is "run immediately and exit", so if docker restarts the container after it exits for whatever reason it will just loop forever.

covert granite
#

I had it set to upon-failure. I just want the container on with the ability to run the script when needed while testing.

old star
#

Then remove the KOMETA_RUN, as that will prevent running the script manually.

covert granite
#
restart: "no"
restart: always
restart: on-failure
restart: unless-stopped
restart: always
old star
#

No, then.

#

Or unless-stopped IF AND ONLY IF you remove KOMETA_RUN

#

A typical way to address this would be two containers:

  kometa:  
    container_name: scheduled_kometa
    image: kometa-team/kometa:latest
    environment:
      - TZ=America/New_York
      - KOMETA_TIME=21:00 #optional
    volumes:
      - /whatever:/config 
    restart: unless-stopped

  kometa_ondemand:  
    container_name: kometa_ondemand
    image: kometa-team/kometa:latest
    environment:
      - TZ=America/New_York
      - KOMETA_RUN=true
    volumes:
      - /whatever:/config 
    restart: no

The scheduled one waits to wake up at 21:00, restarting automatically on reboot and such unless you explicitly stop it, and when you want to run Kometa for testing:

docker start kometa_ondemand

runs and exits and doesn't get restarted.

covert granite
#

I'm testing

covert granite
#

It ran fully, so it's still processing, but it does appear to be working with the mount.

#

O

#

I'll need to tweak and verify everything, but not having those mounts attached to the command line was the issue.

#

I don't futz with docker exec much, so it's good to have my ignorance upgraded for future issues.

#

Thank you @old star

stray kettleBOT
#

chazlarson used !aenh

@covert granite, anything else needed here? If not, please type /close and hit enter. Please respond within 24 hours of this message or it will be archived.

covert granite
#

Thanks. Will do when confirmed.

#

When using 'docker start kometa_ondemand' can I pass cmdline params to it?

old star
#

I don't believe so, no. You would use a docker run or docker exec for that.

lapis thistle
#

@covert granite any update