我在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:系统 找不到指定的文件。
知道如何解决这个问题吗?
由于
答案 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”
希望这会有所帮助!