stilliard/pure-ftpd だとFTPユーザを複数設定しにくい
よく利用されているFTP用コンテナのひとつに stilliard/pure-ftpd があります。
https://hub.docker.com/r/stilliard/pure-ftpd
手軽にFTPサーバを用意でき、ユーザやパスワードも環境変数で決められます。
FTP_USER_UID
FTP_USER_GID
FTP_USER_NAME
FTP_USER_PASS
FTP_USER_HOME
楽ですね。
ただ、やや物足りないのが、上記のとおり、環境変数で設定できるのが1ユーザだけである点です。
複数ユーザ設定は当然需要があり、issueも起票されていますが、オーナからは「コンテナに入ってコマンド叩いてユーザ作成してねー」との案内に留まっています。
https://github.com/stilliard/docker-pure-ftpd/issues/136
ちょっと手間です。もっと良い方法はないものでしょうか。
atmoz/sftp のやり方を拝借する
というわけで、他から助けを借りることにします。
https://github.com/atmoz/sftp
上記はSFTP用のコンテナです。 ユーザ:グループ:ユーザID:グループID:ホームディレクトリ
の形式を複数用意し、引数としてentrypointに渡してやれば、複数ユーザのいるSFTPコンテナを起動することができます。
該当のshellを stilliard/pure-ftpd に持ち込んで、複数ユーザ設定可能になるよう書き換えます。
- stilliard/pure-ftpd を
git clone
して、 - 環境変数でFTPユーザ設定するのはやめて、
- 代わりに
ユーザ:グループ:ユーザID:グループID:ホームディレクトリ
の形式でentrypointの引数を用意してやって、 - atmoz/sftp と同様、各引数に対して「validation」「ユーザ作成コマンド発行」を行うようにすればOKです
簡単ですね。
おわりに
この投稿では stilliard/pure-ftpd で複数ユーザ設定できようにする方法を書きました。
issueにもその旨コメントしている方がいるので、大体の人がやっている方法だと思います。
https://github.com/stilliard/docker-pure-ftpd/issues/136#issuecomment-649404150
それではごきげんよう。