簡體   English   中英

在 docker-compose.yml 文件中創建目錄

[英]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

有沒有辦法在這個文件中寫入mkdirchmod

您不需要手動創建和設置 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM