Создайте каталог в файле docker-compose.yml - PullRequest
0 голосов
/ 07 ноября 2019

У меня есть doml-compose yml, который создает образ 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 в этом файле?

1 Ответ

0 голосов
/ 07 ноября 2019

Вам не нужно создавать и устанавливать мод вручную, просто передайте имя каталога на 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 Youможете проверить это, используя

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

Пользователь "foo" с паролем "pass" может войти в систему с помощью sftp и загрузить файлы в папку с именем "upload". Нет смонтированных каталогов или пользовательских UID / GID. Позже вы можете проверить файлы и использовать --volumes-from для их монтирования в другом месте (или см. Следующий пример).

см. официальную документацию

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...