FTP Docker

По умолчанию пользователю предоставляется домашний каталог FTP /home/virtual/${username}. Любые тома, к которым вы хотите предоставить пользователю доступ, должны быть смонтированы в домашней папке пользователя.

Добавление и удаление пользователей

Добавьте в docker-compose.yml в директиву vsftpd, параметр environments

VSFTPD_USER_1: 'www-data:ftp:33:'
VSFTPD_USER_2: 'mysql:mysql:999:'
VSFTPD_USER_3: 'certs:certs:50:'

Есть одна особенность, касающаяся переменных среды VSFTPD_USER_[0-9]+ и Docker Compose. Если вы не укажете корневой каталог в переменной конфигурации пользователя, переменная будет заканчиваться символом :, который имеет особое значение в файле YAML. В этом случае необходимо определить переменные среды, используя метод словаря, как показано здесь.

Упоминания

Важно, чтобы они монтировались не непосредственно в домашний каталог пользователя, а в подкаталог домашнего каталога пользователя. Причина этого в том, что у пользователя нет прав на запись в корне его домашнего каталога. Любая смонтированная папка уже должна иметь те же разрешения, что и системный пользователь, под которым работает пользователь FTP. Итак, если мы определяем VSFTP_USER_1=user1:pass:33:, то смонтированные папки должны принадлежать пользователю с идентификатором 33, чтобы пользователь FTP мог получить к ним доступ.