Docker: как создать контейнер консольного приложения, принимающего данные с терминала - PullRequest
0 голосов
/ 10 марта 2019

Я играю с популярной технологией Docker и просто начинаю с нуля. Для начала я хотел бы сначала создать контейнеры консольных приложений, а затем постепенно переходить к более сложным приложениям, таким как веб-приложения и т. Д.

Я успешно создал приложение "hello world", которое будет отображать предложение в терминале. Тем не менее, я попал в стену, когда попытался слегка обновить приложение, чтобы оно могло принимать данные от терминала.

В папке 2 файла, один файл app.py, а другой файл Dockerfile.

Файл app.py имеет следующий контент: (всего 2 строки)

name = input("What is your name? ")
print ('hello ' + name + ' from a container!')

И Dockerfile выглядит так:

# Use an official Python runtime as a parent image
FROM python:3

# Set the working directory to /app
WORKDIR /app

# Copy the current directory contents into the container at /app
COPY . /app

# Run app.py when the container launches
CMD ["python", "app.py"]

Так что оба они очень просты. Затем я иду в терминал, перехожу к папке и собираю контейнер:

docker build --tag=helloworld .

Сборка прошла успешно. Но однажды я попытался запустить его с:

docker run helloworld

Я получил следующее сообщение об ошибке:

What is your name? Traceback (most recent call last):
File "app.py", line 3, in <module>
name = input("What is your name? ")
EOFError: EOF when reading a line

Как я могу это исправить?

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