我正在使用流行的Docker技术,只是从头开始。首先,我想先将控制台应用程序容器化,然后逐渐移至Web应用程序等更复杂的应用程序。
我已经成功地将“ 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
我该如何解决?