Я не уверен, что вы имели в виду
<cmd>${sftp.username}:${sftp.password}:::${sftp.directory}</cmd>
, но это не похоже на допустимую команду для контейнера. Если вы посмотрите на Dockerfile , то команда будет выполнена с /bin/bash -c "your command here"
Если вы намеревались запустить сервер и соединиться с пользователем и паролем, следующее будет выполнять эту работу:
<images>
<image>
<alias>sftp</alias>
<name>stilliard/pure-ftpd</name>
<run>
<env>
<FTP_USER_NAME>sw</FTP_USER_NAME>
<FTP_USER_PASS>pass</FTP_USER_PASS>
<FTP_USER_HOME>/home/sw</FTP_USER_HOME>
</env>
<ports>
<port>3000:21</port>
<port>30000:30000</port>
<port>30001:30001</port>
<port>30002:30002</port>
<port>30003:30003</port>
<port>30004:30004</port>
<port>30005:30005</port>
<port>30006:30006</port>
<port>30007:30007</port>
<port>30008:30008</port>
<port>30009:30009</port>
</ports>
<wait>
<time>10000</time>
</wait>
</run>
</image>
</images>
Устанавливает пользователя FTP времени выполнения (см. Раздел Настройка пользователя FTP времени выполнения для readme и пароля. Вам необходимо открыть порты 30000-30009
, чтобы сделать ftp пассивнымрежим работа.
Запустите ftp -p localhost 3000
на хосте, проверьте, работает ли он. Надеюсь, это поможет.