Как смонтировать docker домашний каталог контейнера в Azure Storage - PullRequest
0 голосов
/ 20 марта 2020

Я новичок в docker. Я пытаюсь заставить работать контейнер atmoz / sftp с Azure Storage.

Моя цель - создать несколько пользователей SFTP, которые будут загружать файлы в свои собственные папки, которые я затем смогу найти в Azure Storage.

Я использовал следующую команду:

az container create \
--resource-group test \
--name testsftpcontainer \
--image atmoz/sftp \
--dns-name-label testsftpcontainer \
--ports 22 \
--location "East US" \
--environment-variables SFTP_USERS="ftpuser1:yyyy:::incoming ftpuser2:xxx:::incoming" \
--azure-file-volume-share-name test-sftp-file-share \
--azure-file-volume-account-name storagetest \
--azure-file-volume-account-key "zzzzzz" \
--azure-file-volume-mount-path /home

Контейнер создан и запущен, но когда я безуспешно пытаюсь подключиться через Filezilla, я получаю это в журнале:

Accepted password for ftpuser2 from 10.240.xxx.xxx port 64982 ssh2 
bad ownership or modes for chroot directory component "/home/"

Если я использую / home / ftpuser1 / входящий, он работает для одного из пользователей.

Нужно ли мне сначала изменить разрешения для каталога / home? Если да, то как?

Ответы [ 2 ]

1 голос
/ 20 марта 2020

Конечно, вы можете смонтировать Azure File Share в каталог контейнера /home. И это прекрасно работает на моей стороне:

enter image description here enter image description here

И я также делаю тест с изображением atmoz/sftp , И это тоже отлично работает. Команда здесь:

az container create -g myResourceGroup \
-n azuresftp \
--image atmoz/sftp \
--ports 22 \
--ip-address Public \
-l eastus \
--environment-variables SFTP_USERS="ftpuser1:yyyy:::incoming ftpuser2:xxx:::incoming" \
--azure-file-volume-share-name fileshare \
--azure-file-volume-mount-path /home \
--azure-file-volume-account-name xxxxxx \
--azure-file-volume-account-key xxxxxx

Вот скриншот:

enter image description here

Обновление:

В соответствии с требованиями ошибка указывает на плохое владение, и невозможно управлять разрешениями, когда вы монтируете общий ресурс Azure по пути /home или /home/user прямо сейчас. Поэтому я рекомендую вам смонтировать общий файловый ресурс Azure по пути /home/user/upload каждого пользователя, и он будет go иметь тот же результат, что и вам.

0 голосов
/ 24 марта 2020

Я не смог найти решение проблемы. В конце я использовал другой подход: - Я смонтировал хранилище Azure в другую несвязанную папку / mount / sftpfiles - После сборки контейнера я выполнил следующие команды:

apt update apt-get -y install lsyncd lsyncd -rsyn c / home / mnt / sftpfiles

Они загружают инструмент под названием lsyncd, который отслеживает изменения файловой системы и копирует файлы в другую папку при возникновении изменения.

Это решает мое требование, но у него есть побочный эффект дублирования всех файлов (это не проблема для меня).

Я все еще открыт для других предложений, которые помогли бы мне сделать это чище.

...