无法准备上下文:无法评估Windows 10的Dockerfile路径中的符号链接

时间:2017-11-07 08:40:13

标签: windows powershell docker spring-boot

我在Dockerfile.txt dir。

下创建了C:\Users\user_name\

文件内容为:

FROM centos

RUN yum install -y java

VOLUME /tmp
ADD /test-0.0.1-SNAPSHOT.jar myapp.jar
RUN sh -c 'touch /myapp.jar'
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/myapp.jar"]

我在C:\Users\user_name\下移动了Dockerfile和uber jar,并在C:\Users\user_name\下的PowerShell中执行了命令。

docker build -t spring-boot-docker .

我收到此错误:

  

无法准备上下文:无法评估Dockerfile中的符号链接   path:GetFileAttributesEx C:\ Users \ user_name \ Dockerfile:系统   找不到指定的文件。

知道如何解决这个问题吗?

由于

3 个答案:

答案 0 :(得分:2)

docker将默认为名为Dockerfile但没有扩展名的文件。由于您将Dockerfile命名为Dockerfile.txt,因此必须使用-f标记。

docker build -t spring-boot-docker -f Dockerfile.txt .

答案 1 :(得分:0)

我将文件命名为Dockerfile(在Windows下为Git CMD),结果为

  

docker build .

     

unable to prepare context: unable to evaluate symlinks in Dockerfile path: GetFileAttributesEx C:\*windows-path*\Dockerfile: The system cannot find the file specified.

因此,我将其从Dockerfile更改为Dockerfile.txt,并使用了-f选项:

  

docker build -t test_image -f ".\Dockerfile.txt" .

它奏效了:)

答案 2 :(得分:-1)

避免使用文本文件来构建镜像,因为 Docker 引擎被配置为根据其约定从“.Dockerfile”扩展名而不是“.txt”扩展名构建!

最好使用以下任何一种语法:

语法-A:

$ docker build . -f ./Dockerfile.Dockerfile

使用此语法通过 docker build 构建 docker 镜像,使用默认 Dockerfile 名称“Dockerfile.Dockerfile”


语法-B:

$ docker build -t <containername> . -f <mydockerfile>.Dockerfile

使用此语法通过 docker build 构建 docker 镜像,使用 custom Dockerfile 名称“mydockerfile.Dockerfile”

希望这会有所帮助!