Cannot mount rclone in docker compose, failed to mount FUSE fs: directory already mounted, use --allow-non-empty to mount anyway

What is the problem you are having with rclone?

I want to mount my SeaDrive libraries to my NAS with a docker container. The config works from my windows desktop computer, but I can't get it work with docker.

Run the command 'rclone version' and share the full output of the command.

rclone v1.63.0

  • os/version: alpine 3.18.2 (64 bit)
  • os/kernel: 5.13.x (x86_64)
  • os/type: linux
  • os/arch: amd64
  • go/version: go1.20.5
  • go/linking: static
  • go/tags: none

Which cloud storage system are you using? (eg Google Drive)

Want to acces SeaDrive from my Asustor NAS via Docker

The command you were trying to run (eg rclone copy /tmp remote:tmp)

rclone mount seafile:/ /seafile

The rclone config contents with secrets removed.

[seafile]
type = seafile
url = https://cloud.myserver.com
user = user@domain.com
pass = longHashedPassword

My Docker compose

version: '3'
services:
  rclone:
    image: rclone/rclone:latest
    container_name: rclone
    restart: unless-stopped
    volumes:
      - ./config:/config/rclone
      - ./seafile:/seafile
    command: "mount seafile:/ /seafile"
    cap_add:
      - SYS_ADMIN
    devices:
      - /dev/fuse:/dev/fuse
    environment:
      - PUID=1000
      - PGID=100

A log from the command with the -vv flag

After starting my docker-compose the docker container is showing the following error:

2023/07/11 13:43:03 Fatal error: failed to mount FUSE fs: directory already mounted, use --allow-non-empty to mount anyway: /seafile

When I use in additon --allow-non-empty there no error message, but also ./seafile is still empty. On Windows it workes like a charm with:

rclone.exe mount seafile:/ C:\temp\rclone\seafile

I also tried mount seafile: instead of mount seafile:/, but same result.

What am I doing wrong?

Try to replace in docker compose in volumes:

- ./seafile:/seafile

with

- ./seafile:/seafile:shared

Then I get the following error:

root@myServer:/volume1/Docker/rclone # docker compose up -d
[+] Running 0/1
 ⠿ Container rclone  Starting                                              3.5s
Error response from daemon: path /volume1/Docker/rclone/seafile is mounted on /volume1 but it is not a shared mount

That reminds me of a similar issue I had on my synology nas (it was years ago though).

I solved my issue by running this command:

sudo mount --make-shared /volume1

looks like you are already root, so sudo is probably not needed

I realized I would have to apply the --make-shared to the whole volume1, what is my whole NAS.
So I fully want to understand this option. What is it doing exactly and what is the impact on my file system?

I was reading through the man page and a few articles, but I didn't fully understand it unfortunately.

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