Podman volume as datasource is not working [Cross-device mounts detected on path ...]

Hi!
I am using Pydio with rootless podman on an install of OpenSUSE MicroOS.
I am running pydio with the following parameters:

podman run -d --name pydio --network pydiomysql-net -p 8080:8080 -p 33060:33060 -e CELLS_GRPC_EXTERNAL=33060 -e CELLS_LOG_LEVEL=production -e CELLS_EXTERNAL=https://ursa.bear-tetra.ts.net -v /var/storage/express/pydio/cells/data:/var/cells/data:z -v synced:/var/cells/data/synced:z -v /var/storage/express/pydio/cells:/var/cells:z -v synced:/var/cells/data/synced pydio/cells:latest

pydiomysql-net is to connect the pydio container to a mysql container.
When doing this, I cannot use /var/cells/synced as a datasource. In the logs I am seeing:

ERROR Invalid command line arguments: Cross-device mounts detected on path (/var/cells/data) at following locations [/var/cells/data/synced-native /var/cells/data/synced]. Export path should not have any sub-mounts, refusing to start.

synced-native is from trying to use a directory and mount it as follows, which is also not working:

podman run -d --name pydio --network pydiomysql-net -p 8080:8080 -p 33060:33060 -e CELLS_GRPC_EXTERNAL=33060 -e CELLS_LOG_LEVEL=production -e CELLS_EXTERNAL=https://ursa.bear-tetra.ts.net -v /var/storage/express/pydio/cells/data:/var/cells/data:z -v /var/storage/express/pydio/cells/data/synced-native:/var/cells/data/synced-native:z -v /var/storage/express/pydio/cells:/var/cells:z -v synced:/var/cells/data/synced pydio/cells:latest

The output of podman volume inspect synced is as follows:

[
     {
          "Name": "synced",
          "Driver": "local",
          "Mountpoint": "/var/storage/express/podman/storage/volumes/synced/_data",
          "CreatedAt": "2023-07-15T20:31:44.597687745-06:00",
          "Labels": {},
          "Scope": "local",
          "Options": {},
          "MountCount": 0,
          "NeedsCopyUp": true
     }
]

Am I missing something that I need for this to work?

All the best,
fishe

Similar problem:

Workaround
Step 1: Mount smb/cifs as datasource does not work in v4.2.2 - #6 by jaimedelano
Step 2: Mount smb/cifs as datasource does not work in v4.2.2 - #8 by jaimedelano

1 Like

I’ve gotten an executable built with make docker. Do you know how one would turn the cells-linux executable into a docker container? I’ve looked at the docs and searched around online but didn’t find anything that helped, I’ve never done this before and really don’t know what to do from here
@jaimedelano

I do not think that it is possible.

I did end up getting it working! From where I had the root of the git repo at ~/git/cells, I:
made the listed modifications to the source code
ran make docker
cd’d into tools/docker/images/cells
edited line 9 of dockerfile to download my compiled cells-linux binary instead of pydio binary
ran docker build -t cells .
From this, I now have a working cells container that allows for both a podman volume and a bind-mounted drive directory to function as a datastore!

After sharing these to a syncthing container and running chmod 1000:1000 [mount directory] from its console, it is now working fine in syncthing as well:

Syncing files and directories to the server through syncthing is working just fine now, apart from one thing. Is there an interval at which Pydio will check for new files on a datastore? After adding a new file and it being synced through syncthing, I waited for around an hour and it still did not appear in Pydio. It showed up immediately after restarting the container though.
Is there a way to change this interval, or better yet to change it for only one datastore or workspace?

1 Like

In order to sync a (structured) datasource (to check new files), run
cells admin datasource resync -d your_datasource_name
I’m not sure if Pydio supports automatic sync. You can schedule the above command to run via Linux cronjob though.

1 Like

Awesome, I hadn’t thought of that!
I messed with it a bit and found an easy way to include this cron job into the container. I added

mkdir -p /var/spool/cron/crontabs
crond
printf "*/10 * * * * /bin/cells admin datasource resync -d synced\n" > /etc/crontab
crontab /etc/crontab

to the beginning of docker-entrypoint.sh, and it now resyncs the dataset every 10 minutes. Thanks so much for your help, Pydio is now working perfectly for me!

1 Like

This topic was automatically closed 11 days after the last reply. New replies are no longer allowed.