问题描述
我正在尝试在使用家里的 pi 作为外部存储卷的 VPS 上运行 nextcloud。我在他们之间设置了wireguard,并尝试了各种设置方法,我怀疑我从根本上误解了这个设置。
-
首先我尝试在 pi 上运行 vsftpd。从我的 vps,我可以
ftp user@pi-ip-addr
、验证、列出目录和上传文件,其中pi-ip-addr
是wireguard 分配给它的 IP 地址。从 nextcloud 界面,我能够将该目录添加为外部存储并查看那里的文件,但禁止写入访问。 -
然后我尝试使用 samba 和 sshfs 成功地通过 r/w 访问将远程存储挂载到 pi
sshfs user@pi-ip-addr:share /opt/nextcloud/extstore
上。安装后,我首先尝试在 docker-compose.yaml 中添加一个卷
services:
app:
volumes:
- /opt/nextcloud/extstore:/extstore
然后在 nextcloud 中添加 /extstore
作为本地外部存储。如果我在使用 sshfs 挂载文件夹之前启动了 docker,它似乎可以正常运行。我可以从 vps shell 添加文件并在 nextCould 中查看它们,我可以通过 nextcloud 上传文件并在 shell 中查看它们。但是如果我先挂载pi存储,启动nextcloud时报错
ERROR: for nextcloud_app_1 Cannot start service app: error while creating mount source path '/opt/nextcloud/extstore': mkdir /opt/nextcloud/extstore: file exists
ERROR: for app Cannot start service app: error while creating mount source path '/opt/nextcloud/extstore': mkdir /opt/nextcloud/extstore: file exists
ERROR: Encountered errors while bringing up the project.
docker volume create -d vieux/sshfs -o sshcmd=user@pi-ip-addr:share -o password=#### extstore
然后测试它:docker run -it -v extstore:/data busyBox ls /data
,它返回
docker: Error response from daemon: error while mounting volume '': VolumeDriver.Mount: sshfs command execute Failed: exit status 1 (read: Connection reset by peer).
ERRO[0031] error waiting for container: context canceled
我怀疑对于 (1) 和 (3),docker 网络规则存在干扰,可能与通过 wireguard 运行它相结合?也许对于 (2) docker 在本地目录中创建一个不兼容(或配置不正确)的卷时会做些什么,因为它被用作 sshfs/samba 的挂载点,可能也是出于安全原因?对原因的任何解释和/或如何实现我所追求的建议都会非常好。谢谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)