#docker #volume #nextcloud #sshfs #wireguard
Вопрос:
Я пытаюсь запустить nextcloud на VPS, который использует pi дома в качестве внешнего тома хранения. Я установил проводную защиту между ними и попробовал множество способов настроить это, и я подозреваю, что я в корне неправильно понимаю что-то в этой настройке.
- Сначала я попытался запустить vsftpd на pi. С моего vps я мог
ftp user@pi-ip-addr
бы аутентифицироваться, перечислять каталог и загружать файлы, гдеpi-ip-addr
указан IP-адрес , назначенный ему wireguard. Из интерфейса nextcloud я смог добавить этот каталог в качестве внешнего хранилища и просматривать там файлы, но доступ на запись был запрещен. - Затем я попытался с помощью samba и sshfs успешно смонтировать удаленное хранилище на pi
sshfs user@pi-ip-addr:share /opt/nextcloud/extstore
с доступом r/w. С этим смонтированным я сначала попытался добавить том в docker-compose.yaml
services:
app:
volumes:
- /opt/nextcloud/extstore:/extstore
а затем добавить /extstore
в качестве локального внешнего хранилища в nextcloud. Если я запустил docker перед установкой папки с помощью sshfs, он, казалось, работал правильно. Я мог бы добавлять файлы из оболочки vps и просматривать их в nextcould, а также загружать файлы через nextcloud и просматривать их в оболочке. Но если я сначала смонтировал хранилище 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.
- Последний подход, который я пробовал, состоял в создании тома vieux/sshfs
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, возможно, также по соображениям безопасности? Любые объяснения причины и/или предложения о том, как достичь того, что мне нужно, были бы действительно хороши. Спасибо!