Accessing NFS Share

For anyone else struggling to get NFS shares to work, I finally found something that made a difference for me, and I’m posting it in case it helps someone else.
As background, I’m using Docker in swarm mode, with Traefik in front of Cells.

Based on this post I installed the NFS docker container. I still kept getting errors when I added the share, though:

Cross-device mounts detected on path (/home/media) at following locations [/home/media/nfs/video]. Export path should not have any sub-mounts, refusing to start. Invalid command line arguments

What I found was that I wasn’t defining the data source “deeply enough”. My docker volumes section looks like:

volumes:
  cells-static:
  cells-data:
  cells-nas-media:
    driver: nfs
    driver_opts:
      share: mynas:/raid0/data/_NAS_NFS_Exports_/files

services:
   cells:
    image: pydio/cells:latest
    volumes: 
      - cells-static:/root/.config/pydio/cells/static/pydio
      - cells-data:/root/.config/pydio/cells/data
      - cells-nas-media:/home/media/nfs/video
    [...]

My NAS share has a folder called /video containing files. This gives me a mounted path inside the container of
/home/media/nfs/video/video/file.mp4
the mount point -----^

Then, when I created the data source, I was entering a path of /home/media/nfs.
This continued to give me the same cross-device error.

Finally, I fixed this by going deeper in the data source setup by entering /home/media/nfs/video/video instead. This finally gives me what I’m expecting. The log started listing
Computing Etag for unknown file : x.mp4
My next step is to add a second volume not using the NFS driver, and use the same deep path, and see if it works.

Cheers,
Geoff