скрипт Python, который генерирует CSV в Docker - PullRequest
0 голосов
/ 14 ноября 2018

У меня есть скрипт Python, который генерирует CSV в качестве вывода.Я запускаю сценарий в контейнере Docker.Контейнер Docker завершает работу сразу после завершения скрипта, поэтому я не могу скопировать файл.Что было бы лучшим способом получить CSV из контейнера?

Ответы [ 2 ]

0 голосов
/ 14 ноября 2018

Если у вас есть скрипт на обычном интерпретируемом языке, и его основная деятельность заключается в чтении или записи локальных файлов, лучший способ его запустить - это вообще не использовать Docker.

Вы можете использовать обычные инструменты упаковки Python для объявления зависимостей вашего скрипта (файл setup.py или requirements.txt). Несмотря на то, что вам нужно немного настроить, чтобы иметь возможность запускать скрипт, это чрезвычайно обычная процедура:

python3 -m venv venv
. venv/bin/activate
pip install -r requirements.txt
./the_script.py

По сравнению с решением на основе Docker, оно на самом деле не более сложное, чем типичный вызов docker run; в отличие от Docker, большинство систем Linux и MacOS имеют предустановленный Python; и вам не нужно быть пользователем root или иметь права, эквивалентные root для запуска сценария. Вам также не нужно беспокоиться о механике совместного использования файлового содержимого с работающим контейнером или о неизбежных проблемах с разрешениями файловой системы, которые возникают из него.

0 голосов
/ 14 ноября 2018

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

$ docker run -v $PWD/output:/usr/my/workspace mycontainer mycmd

Где mycmd выводит файл CSV в /usr/my/workspace. Ваш файл будет находиться в папке output/ в файловой системе вашего хоста.

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