Я играю с популярной технологией 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
Как я могу это исправить?