Can't mount my /photos share

Hello everyone!
I’m trying for the first time photostructure on my QNAP NAS (TS-453D) but I can’t seem to mount the share in which I have all my photos stored, would you please take a look at my YAML text to check if you can spot any errors?
For the record, my UID is 1000, GUID 100 and my photos are located at the “/share/CACHEDEV3_DATA/photos” share. The “/share/homes/jumanjimanji/.photostructure-logs” folder (and the .photostructure) was made with the “mkdir -p .photostructure-logs” commands, as the
“/tmp/.photostructure-tmp” folder.
I’ve also created a shared folder especially for photostructure “/share/CACHEDEV3_DATA/photostructure/library”.
Here goes the YAML text:

version: "3"
services:
  photostructure:
    image: photostructure/server:stable
    container_name: photostructure
    restart: on-failure
    stop_grace_period: 2m

    # This is the user id and group id you want PhotoStructure to run as.
    # Unfortunately this doesn't seem to work on QNAP. Omitting
    # this parameter will make your library and contents be owned by root,
    # which stinks. If you can get this working, please email us!
    # user: 1000:100

    volumes:
      # This is where your PhotoStructure Library will be stored.
      # It must be readable, writable, and have sufficient free space.
      # If it is a remote volume, uncomment the PS_FORCE_LOCAL_DB_REPLICA
      # environment line below. It needs to already exist!
      # (use mkdir -p as the user that runs PhotoStructure)

      - /share/CACHEDEV3_DATA/photostructure/library:/ps/library # < CHANGE THIS LINE OK

      # This must be fast, local disk with many gigabytes free.
      # PhotoStructure will use this directory for file caching
      # and for storing a temporary database replica when your
      # library is on a remote volume.

      - /tmp/photostructure-tmp:/ps/tmp

      # This directory stores your "system settings". It needs to already exist!
      # (use mkdir -p as the user that runs PhotoStructure)

      - /share/homes/jumanjimanji/.photostructure:/ps/config # < CHANGE THIS LINE OK

      # This directory stores PhotoStructure logfiles. It needs to already exist!
      # (use mkdir -p as the user that runs PhotoStructure)

      - /share/homes/jumanjimanji/.photostructure-logs:/ps/logs # < CHANGE THIS LINE OK

      # Example additional directories to import into your library.
      # Add as many as you'd like.

      # You can set the mount point to anything like /media, or /pictures, ...
      # (the name doesn't matter, as long as it is unique,
      # and not in a system directory, like /usr/lib)

      - /share/CACHEDEV3_DATA/photos:/pictures # < CHANGE THIS LINE OK

      # Add more lines like the one above to scan additional directories.

    ports:
      - 1787:1787/tcp

    environment:
      - "PS_IS_DOCKER=1"
      - "PUID=1000" # < CHANGE THIS LINE to match the userid you want PhotoStructure to run under OK
      - "PGID=100" # < CHANGE THIS LINE to match the groupid you want PhotoStructure to run under OK

    labels:
      # See https://containrrr.dev/watchtower/container-selection/
      - "com.centurylinklabs.watchtower.enable=true"

  watchtower:
    image: containrrr/watchtower
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    # Check for updates every couple hours: (3h * 60m * 60s)
    command: --interval 10800
    environment:
      - "WATCHTOWER_LABEL_ENABLE=true"

Howdy, @jumanjimanji , welcome to PhotoStructure!

Your YAML looks good to me, but getting all the paths correct can be a bit tricky: let’s verify those look reasonable.

Can you ssh into your QNAP and run the following?

ls -ld /share/CACHEDEV3_DATA/photostructure/library /tmp/photostructure-tmp /share/homes/jumanjimanji/.photostructure  /share/CACHEDEV3_DATA/photos

(Also: never run terminal commands from Random Internet Strangers unless you know exactly what the command is going to do: this is the “list” command, ls, with “long listing format” and “directory” switches.)

We want all those directories to both exist, and to be read/write by UID 1000 and GID 100 (the last path just needs to be readable).

Ah, and I just realized that your QNAP (and most other POSIX systems!) use tmpfs for /tmp.

This means all of /tmp is wiped on reboot, so /tmp/photostructure-tmp won’t exist.

Docker doesn’t, as far as I know, have a switch to auto-mkdir any missing bind mount volumes, so unless something runs mkdir /tmp/photostructure-tmp before docker starts, the container will fail to spin up.

The next release of PhotoStructure will support using /tmp directly, and create a subdirectory with a umask of 077 to avoid this issue. I’ll update instructions when that release is stable.

Don’t worry! I’ve been using the ls command a lot in my QNAP so I know if something smells fishy! Here is the output:

drwxrwxrwx 134 admin        administrators 118784 2022-01-15 15:40 /share/CACHEDEV3_DATA/photos/
drwxr-xr-x   2 jumanjimanji everyone         4096 2022-01-15 17:59 /share/CACHEDEV3_DATA/photostructure/library/
drwxr-xr-x   7 jumanjimanji everyone         4096 2022-01-15 17:56 /share/homes/jumanjimanji/.photostructure/
drwxr-xr-x   5 jumanjimanji everyone          120 2022-01-15 17:56 /tmp/photostructure-tmp/

I believe the problem is in the photos share but I checked via GUI that the folder has RW permissions for my user. I’m not comfortable playing with chown command, etc. Too scared to mess up the OS defaults!
Also I wondered how long will that tmp directory will stand given the nature of the folder, I’ll check if I can make a script to run on startup.