Монтирование нескольких файлов с одинаковым расширением через запуск Docker - PullRequest
0 голосов
/ 16 октября 2019

Я знаю, что один файл, скажем hello_world.py, в моей локальной файловой системе может быть смонтирован (не скопирован) в контейнере Docker с помощью

docker run -v local_directory/hello_world.py:docker_directory/hello_world.py other_params

Мой вопросвозможно ли использовать синтаксис, аналогичный mount нескольким файлам с одинаковым расширением в каталоге до контейнера Docker? Я экспериментировал с использованием *.py безрезультатно.

docker run -v local_directory/*.py:docker_directory/*.py other_params

Является ли мой единственный вариант явной записи отдельных операторов -v для каждого файла .py в команде docker run?

Ответы [ 3 ]

2 голосов
/ 16 октября 2019

Хотя отображение в формате * невозможно, конечно, есть способы обойти это, поэтому вам не нужно индивидуально сопоставлять каждый файл. Одна из возможностей - смонтировать local_directory в контейнер, а затем создать символические ссылки, используя цикл for():

docker run -v local_directory:custom_directory other_params
for i in `ls local_directory/*py`
do
  docker exec -it ln -s custom_directory/${i} docker_directory <container_name>
done
1 голос
/ 16 октября 2019

Чистым решением для вашего случая будет монтирование всей папки и использование команды для указания исполняемых файлов на правильную папку, такую ​​как:

 docker run -v my_folder:/docker/my_folder python:3 python /docker/my_folder/my-script.py

дополнительная информация

1 голос
/ 16 октября 2019

Нет, нельзя вообще использовать относительные пути для монтирования файлов в Docker, а также использовать регулярные выражения с Docker version 19.03.2, build 6a30dfc

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