Docker 构建失败,输入为 STDIN

问题描述

为什么使用 - 构建时 Docker 镜像构建失败?

主机详细信息

 - docker desktop community 2.1.0.5 for Windows 
 - Windows 10

Dockerfile:

FROM ubuntu:latest
MAINTAINER "[email protected]"

RUN apt-get update \
  && apt-get install -y python3-pip python3-dev \
  && cd /usr/local/bin \
  && ln -s /usr/bin/python3 python \
  && pip3 install --upgrade pip

workdir /app
copY . /app
copY requirements.txt /app/requirements.txt
RUN pip3 --no-cache-dir install -r requirements.txt
EXPOSE 5000
CMD ["python3","my_service.py","--input-path= /input.csv","--output-path=/output.csv"]

文件夹结构

-Root 
 -Application.py 
 -Dockerfile 
 -requirements.txt

命令

 - Failing :  docker build - < Dockerfile

消息:错误:无法打开需求文件:[Errno 2] 没有这样的 文件或目录:'requirements.txt'

 - Successful: docker build .

解决方法

跑步时

docker build - < Dockerfile

Dockerfile 发送到 Docker 守护进程,但不发送其他文件。当您告诉 Docker COPY 一个文件到镜像中时,您实际上并未将文件发送给它。这与在 .dockerignore 文件中包含源树中的所有内容非常相似。

通常,您会将当前目录作为上下文目录发送给 Docker:

docker build .  # knows to look for Dockerfile by default