在docker-compose.yml文件中创建目录

时间:2019-11-07 06:15:24

标签: docker docker-compose

我有一个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

是否可以在此文件中写入mkdirchmod

1 个答案:

答案 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挂载它们   其他地方(或查看下一个示例)。

请参见offical documentation