好的,我有一个有趣的问题,需要大家的帮助。
我正在使用“rclone mount”将远程目录挂载到我的主机(Ubuntu Server)。然后我想使用 Docker Compose 将远程挂载目录设置到 Docker 容器卷中。我尝试了不同的方法,但都导致某种形式的权限错误。
* 路径已简化,以便于遵循。
rclone 安装位于~/parent/remote
。
如果我尝试将其设置~/parent
为音量,则会出现以下错误。
volumes:
- ./parent:/parent
# This results in the remote folder having all "?" as its permissions inside the container.
drwxr-xr-x 4 abc abc 4096 Apr 25 08:38 ..
d????????? ? ? ? ? ? remote
如果我尝试将其设置~/parent/remote
为音量,则会出现以下错误docker compose up
。
volumes:
- ./parent/remote:/remote
Error response from daemon: error while creating mount source path '~/parent/remote': mkdir ~/parent/remote: file exists
最后,我尝试使用具有传播设置的绑定挂载,但出现以下错误:
volumes:
- type: bind
source: ./parent/remote
target: /remote
bind:
propagation: shared
Error response from daemon: error while creating mount source path '~/parent/remote': mkdir ~/parent/remote: file exists
如何将rclone mount
目录作为卷挂载到 Docker 容器中?
答案1
所以我了解到问题其实出在侧面rclone mount
。添加--allow-other
到 mount 命令允许其他人访问 Fuse Mount,而不仅仅是运行守护进程命令的用户。
这使得 Docker 可以将凭证传递给容器。