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

标签 docker docker-compose

我有一个在docker上创建sftp镜像的docker-compose yml。我想在yml文件中编写脚本,因为我希望在运行docker-compose.yml后立即自动创建目录。

这是我的yml文件;

sftp:
  image: atmoz/sftp
  volumes:
    - C:\tmp\sftp:/home/foo/upload
  ports:
    - "2222:22"
  command: username:password:1001

有没有办法在此文件中写入mkdirchmod

最佳答案

您不需要手动创建和设置mod,只需将目录名称传递给CMD,入口点将为您创建一个。这是最简单的例子。

Define users in (1) command arguments, (2) SFTP_USERS environment variable or (3) in file mounted as /etc/sftp/users.conf (syntax: user:pass[:e][:uid[:gid[:dir1[,dir2]...]]] ..., see below for examples)



使用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运行示例
docker run -p 22:22 -d atmoz/sftp foo:pass:::upload


User "foo" with password "pass" can login with sftp and upload files to a folder called "upload". No mounted directories or custom UID/GID. Later you can inspect the files and use --volumes-from to mount them somewhere else (or see next example).



看到offical documentation

关于docker - 在docker-compose.yml文件中创建目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58742949/

相关文章:

docker - Docker Flask服务器容器无法通过主机访问

postgresql - 无法将Go Application连接到docker-compose中的postgres容器

mysql - Docker 上的 Laravel [2002] 连接拒绝端口 3307 上的 Mysql

ruby-on-rails - Webpacker 在 Docker/Rails 设置中找不到一些 node_modules

docker - 我可以使用任何docker镜像作为基本镜像还是有预定义的基本镜像?

git - GitHub Build容器镜像出现错误

docker - docker golang主进程与python子进程通信的最佳实践

angular - Angular 应用程序的 Docker 镜像构建失败

node.js - 如何设置运行 nginx 配置来运行两个前端应用程序和一个后端服务器

Docker-Compose 容器 IP 地址和容器名称