Попытка интегрировать Python с Docker.Получение ошибки при вводе части кода - PullRequest
0 голосов
/ 07 декабря 2018

У меня очень простой скрипт на python.Я пытаюсь использовать его в контейнере Docker.

Файл Python (computer.py)

import datetime
print("Welcome to virtual assistant.")
name = input("What is your name? ")
print("Welcome " + name)
def time():
print(datetime.datetime.now())
command = input("Would you like to know the time " + name + "?")
if command == "yes":
print(time())

И мой файл Docker выглядит следующим образом. (Docker)

FROM python:3

ADD computer.py /

CMD [ "python", "./computer.py" ]

Затем я запустил

docker build -t python-barcode .

Затем

run python-barcode

Я получаю эту ошибку

Traceback (most recent call last):
  File "./computer.py", line 4, in <module>
    name = input("What is your name? ")
EOFError: EOF when reading a line
Welcome to virtual assistant.
What is your name? %

Кажется, код запускается до тех пор, пока я не запрошу ввод?Даже не уверен, что вызвало бы это.Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

0 голосов
/ 07 декабря 2018

вы должны запустить контейнер в интерактивном режиме с помощью -i и -t

docker run -it python-barcode

0 голосов
/ 07 декабря 2018

Когда вы запускаете контейнер с docker run, stdin по умолчанию не подключен, поэтому все, что пытается прочитать интерактивный ввод, завершится неудачей.Возможно, вы захотите выполнить:

docker run -it python-barcode

-i оставляет stdin подключенным, а -t выделяет tty, который обычно требуется для интерактивного ввода.

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