Как запустить простой скрипт на Python без написания полного Dockerfile? - PullRequest
0 голосов
/ 19 апреля 2019

Я установил Docker Toolbox на машине с Win 10. У меня есть несколько простых файловых скриптов Python, которые я хочу запустить в Docker, просто для учебы. Начал изучать Docker сегодня и Python 3 дня назад.

Полагаю, я правильно настроил Docker, я могу запустить пример образа hello-world. Нет сообщений об ошибках во время установки.

Я следую инструкции отсюда https://runnable.com/docker/python/dockerize-your-python-application, который говорит:

Если вам нужно только запустить простой скрипт (с одним файлом), вы можете избежать написания полного Dockerfile. В приведенных ниже примерах предположим, что вы храните my_script.py в / usr / src / widget_app / и хотите назвать контейнер my-first-python-script:

docker run -it --rm --name my-first-python-script -v "$PWD":/usr/src/widget_app python:3 python my_script.py

Если я наберу pwd , отобразится:

/c/Program Files/Docker Toolbox

И скрипт, который я хочу запустить, находится здесь:

C:\Docker\Python\my_script.py

Вот то, что я думаю, должно работать:

docker run -it --rm --name my-first-python-script -v "$PWD":/c/Docker/Python python:3 python my_script.py

Независимо от того, как я пытаюсь указать каталог файлов, я получаю сообщение об ошибке:

python: can't open file 'my_script.py': [Errno 2] No such file or directory

1 Ответ

1 голос
/ 19 апреля 2019

Когда вы запускаете -v "$PWD":/c/Docker/Python, вы говорите, что хотите связать свой текущий рабочий каталог с путем /c/Docker/Python в контейнере, а это не то, что вы хотите сделать. То, что вы пытаетесь сделать, это связать C:\Docker\Python\ на вашем хосте с папкой контейнера /usr/src/widget_app.

Эта команда поместит ваш скрипт в путь контейнера /usr/src/widget_app, а затем запустит его:

docker run -it --rm --name my-first-python-script -v /c/Docker/Python:/usr/src/widget_app python:3 python /usr/src/widget_app/my_script.py
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...