Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
具有自定义路径和自定义文件名的Docker生成不起作用_Docker_Docker Build_Docker Desktop - Fatal编程技术网

具有自定义路径和自定义文件名的Docker生成不起作用

具有自定义路径和自定义文件名的Docker生成不起作用,docker,docker-build,docker-desktop,Docker,Docker Build,Docker Desktop,我正在Windows 10中使用Docker版本19.03.2 我有一个目录C:\docker\u test,其中包含文件Dockerfile和Dockerfile\u test。当我执行 PS C:\> docker build 'C:\docker_test' 在PowerShell中,映像是从Dockerfile构建的,正如预期的那样。但是,当我想从Dockerfile\u test这样构建一个映像时 PS C:\> docker build -f Dockerfile_te

我正在Windows 10中使用Docker版本19.03.2

我有一个目录
C:\docker\u test
,其中包含文件
Dockerfile
Dockerfile\u test
。当我执行

PS C:\> docker build 'C:\docker_test'
在PowerShell中,映像是从
Dockerfile
构建的,正如预期的那样。但是,当我想从
Dockerfile\u test
这样构建一个映像时

PS C:\> docker build -f Dockerfile_test 'C:\docker_test'
我明白了

我不明白为什么Docker要查找
C:\Dockerfile\u test
,尽管我指定了一个生成路径。

您应该声明Dockerfile的路径(上下文),如下所示

PS C:\> docker build -f 'C:\docker_test\Dockerfile_test' 'C:\docker_test'

这个问题已经有了答案,但这只是一个细节

docker build命令从Dockerfile和 上下文生成的上下文是位于指定位置的文件集 位置路径或URL

使用
C:\docker\u test
可以指定上下文

来自相同的文档

传统上,Dockerfile称为Dockerfile,位于 上下文的根。在docker build中使用
-f
标志指向文件系统中的任何位置

因此,如果指定
-f
标志,docker将搜索给定的文件。在您的情况下,您有一个没有路径的文件,因此docker将在当前目录中搜索


要使其正常工作,请使用@Arik建议的命令

谢谢!我想我可以到处指定完整的文件路径。对于不在构建上下文中的Dockerfile,什么是用例?
PS C:\> docker build -f 'C:\docker_test\Dockerfile_test' 'C:\docker_test'