"No such file or directory" 构建 Docker 图像时

"No such file or directory" when building Docker image

我有一个现有的和工作的 Dockerfile,我想更新它以获得更好的结构,并允许我对应用程序目录的一部分进行卷挂载以启用持久性。

文件夹结构为:

.git/
.gitignore
Dockerfile
README.md
Sorter.py
WebService.py
requirements.txt

当前工作的 Dockerfile 是:

FROM python:3.8-alpine
ADD . /
RUN pip install -r requirements.txt
EXPOSE 5000
CMD [ "python", "./WebService.py" ]

我现在只想不在根目录中执行此操作,所以我执行以下操作:

FROM python:3.8-alpine
WORKDIR /app
COPY . .
RUN pip install -r requirements.txt
EXPOSE 5000
ENTRYPOINT ["python"]
CMD ["WebService.py"]

我构建图像“docker build -t,运行 它使用与第一个构建脚本相同的 docker-compose 文件 - 我得到错误:

"python: can't open file '/app/WebService.py': [Errno 2] No such file or directory"

问题出在这一行 WORKDIR /app,如您所见,Docker 试图 运行 文件 /app/WebService.py,但您没有。您的文件位于 . 而非 app 文件夹中。所以要么你应该创建 app 文件夹并将你的 WebService.py 放在那个文件夹中,要么只删除 WORKDIR /app.

这是我找到的解决方案:

FROM python:3.8-alpine
RUN mkdir /app
ADD . /app
WORKDIR /app
RUN pip install -r requirements.txt
EXPOSE 5000
CMD [ "python", "./WebService.py" ]