我有一个docker-compose yml,可在docker上创建sftp映像。我想在yml文件中编写脚本,因为我希望在运行docker-compose.yml后立即自动创建目录。
这是我的yml文件;
sftp:
image: atmoz/sftp
volumes:
- C:\tmp\sftp:/home/foo/upload
ports:
- "2222:22"
command: username:password:1001
是否可以在此文件中写入mkdir
和chmod
?
答案 0 :(得分:0)
您不需要手动创建和设置mod,只需将目录名称传递给CMD
,入口点将为您创建一个。这是最简单的例子。
在(1)
command arguments
,(2)SFTP_USERS
环境中定义用户 变量或(3)挂载为/etc/sftp/users.conf
的文件中(语法:user:pass[:e][:uid[:gid[:dir1[,dir2]...]]] ...
,请参见下文 例子)
使用docker-compose
sftp:
image: atmoz/sftp
command: username:password:100:100:upload
它将在username
下创建用户名/home/username
和目录上载
您可以使用
docker exec -it --user username <container_id> bash -c "ls /home/username"
如果要从主机访问上传文件,只需在docker-compose中添加挂载
sftp:
image: atmoz/sftp
command: username:password:100:100:upload
volumes:
- /host/upload:/home/username/upload
示例
最简单的docker run示例
docker run -p 22:22 -d atmoz/sftp foo:pass:::upload
密码为“ pass”的用户“ foo”可以使用sftp登录并上传文件 到名为“上传”的文件夹。没有安装的目录或自定义UID / GID。 以后您可以检查文件并使用--volumes-from挂载它们 其他地方(或查看下一个示例)。