[英]Create a directory in docker-compose.yml file
我有一個 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
?
您不需要手動創建和設置 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
它將在/home/username
下創建用戶名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
密碼為“pass”的用戶“foo”可以使用 sftp 登錄並將文件上傳到名為“upload”的文件夾。 沒有安裝目錄或自定義 UID/GID。 稍后您可以檢查文件並使用 --volumes-from 將它們掛載到其他地方(或參見下一個示例)。
見官方文檔
試試這個,然后 append 你的命令到command
列表
version: "3.7"
services:
sftp:
image: atmoz/sftp
volumes:
- C:\tmp\sftp:/home/foo/upload
ports:
- "2222:22"
command: ["/bin/bash", "-c", "mkdir -p /home/foo/upload/test1 && chmod 755 /home/foo/upload/test1 && username:password:1001"]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.