COPY dockerfile 中没有这样的文件或目录

kmi*_*3sd 0 docker dockerfile

我制作了以下 dockerfile 来包含我的 node js 应用程序,问题是构建 dockerfile 时出现错误:

Sending build context to Docker daemon  2.048kB
Step 1/7 : FROM node:10
 ---> 0d5ae56139bd
Step 2/7 : WORKDIR /usr/src/app
 ---> Using cache
 ---> 5bfc0405d8fa
Step 3/7 : COPY package.json ./
COPY failed: stat /var/lib/docker/tmp/docker- 
builder803334317/package.json: no such file or directory
Run Code Online (Sandbox Code Playgroud)

这是我的 dockerfile:

FROM node:10
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 8080
CMD [ "npm", "start" ]
Run Code Online (Sandbox Code Playgroud)

我执行了命令:sudo docker build - < Dockerfile

进入我的根项目文件夹。

我的项目文件夹很简单,像这样:

-Project
 -app.js
 -Dockerfile
 -package.json
 -package-lock.json
 -README.md
Run Code Online (Sandbox Code Playgroud)

我做错了什么?

Dav*_*aze 5

当您使用 Dockerfile-on-stdin 语法时

sudo docker build - < Dockerfile
Run Code Online (Sandbox Code Playgroud)

构建序列在只有Dockerfile 且磁盘上没有其他文件的上下文中运行。

您显示的目录布局非常典型,指向docker build该目录应该会更好

sudo docker build .
Run Code Online (Sandbox Code Playgroud)

(这与“Dockerfiles 不能访问父目录中的文件”规则相同,但不是将当前目录作为基目录提供给 Docker,而是根本不提供目录,因此它甚至不能访问当前目录中的文件。)