无法使用前端 dockerfile.v0 解决:无法读取 dockerfile?

Sah*_*ndy 19 docker dockerfile docker-container

我是 Docker 新手,我正在尝试从我的应用程序创建一个映像,我Dockerfile在同一目录中创建了package.json没有扩展名的文件,只是Dockerfile

现在在Dockerfile

FROM node:14.16.0
CMD ["/bin/bash"]
Run Code Online (Sandbox Code Playgroud)

我正在尝试用该命令构建图像

docker build -t app .
Run Code Online (Sandbox Code Playgroud)

但我得到了这个持续的错误:

[+] Building 0.2s (2/2) FINISHED
 => [internal] load build definition from Dockerfile                                                           0.2s 
 => => transferring dockerfile: 2B                                                                             0.0s 
 => CANCELED [internal] load .dockerignore                                                                     0.0s 
 => => transferring context:                                                                                   0.0s
failed to solve with frontend dockerfile.v0: failed to read dockerfile: open /var/lib/docker/tmp/buildkit-mount457647683/Dockerfile: no such file or directory
Run Code Online (Sandbox Code Playgroud)

我的文件夹目录是这样的:

   |- Dockerfile
   |- README.md
   |- src
   |- package.json
   |- public
   |- node-modules
   |-package-lock.json

Run Code Online (Sandbox Code Playgroud)

我的操作系统是:Windows 10 Pro

小智 22

我遇到了另一个问题,因此仅供参考。在 Windows 上,我创建了 docker 文件而DockerFile不是Dockerfile. 首都F把事情搞砸了。


小智 20

仔细检查您是否位于正确的目录中。我在下载/应用程序中

当我从 Docker 下载该应用程序作为教程的一部分时,我将其解压并最终位于 downloads/app**/app** 中,在终端中键入dir以查看是否可以看到 dockerfile 或另一个名为 app 的文件夹。


tri*_*eee 6

如果您从副本来到这里,还要注意 Docker 会阻止您访问当前目录树之外的文件。所以,举例来说,

docker build -f ../Dockerfile .
Run Code Online (Sandbox Code Playgroud)

将不被允许。您必须将 Dockerfile 复制到当前目录,或者可能在父目录中运行构建。

无论如何,出于docker build安全原因,您也不能使用指向文件系统中其他位置的文件的符号链接。


kri*_*eti 5

Docker 文件的命名约定是“Dockerfile”而不是“DockerFile”,因此我收到此错误。