在任何 dockerfile 上运行 docker build 时出错:“无法准备上下文:无法评估 Dockerfile 路径中的符号链接”

Ope*_*nja 7 linux docker ubuntu-16.04

我在跑 :

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

每次我运行时都会收到此错误:

unable to prepare context: unable to evaluate symlinks in Dockerfile path: lstat 
Run Code Online (Sandbox Code Playgroud)

完整的错误是:

unable to prepare context: unable to evaluate symlinks in Dockerfile path: lstat /home/someusername/code/Dockerfile: no such file or directory
Run Code Online (Sandbox Code Playgroud)

我认为这与我使用的 docker 版本有关,因此使用本指南升级到最新版本: 安装最新的 docker 版本。我仍然遇到同样的错误。我尝试过不同的 docker 版本。我在不同的服务器上尝试过。我什至尝试过不同的 docker 文件。

我试过的最后一台服务器使用的是这个版本的 docker:

Docker version 17.03.1-ce, build c6d412e
Run Code Online (Sandbox Code Playgroud)

不知道我哪里出错了。请需要进行健全性检查。

小智 8

我看到很多地方都在问这个问题。好吧,我想我找到了解决方案。

在早期版本中,DockerFile 以大写字母“F”命名。然而,在最新版本中,DockerFile 仅在包含一个小的“f”时才能被识别。

我最近升级了docker [Docker version 17.09.1-ce, build 19e2cf6 on CentOS 7] 发现

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

如果当前目录包含文件DockerFile 则失败,但如果它包含Dockerfile则运行良好


小智 3

在当前目录中运行命令“ls”并查看 Dockerfile 的文件扩展名。如果您有扩展名,则需要指定 Dockerfile.abc 的完整路径

否则,您可以使用“TextWrangler”(适用于 mac)创建一个不带扩展名的空白 Dockerfile,然后运行命令

docker image build -t yourname/firstapp .
Run Code Online (Sandbox Code Playgroud)

我希望您已经解决了这个问题;为未来的访客分享这个:)附件是带有解决方案的终端屏幕截图

在此输入图像描述