具有自定义路径和自定义文件名的Docker生成不起作用
我正在Windows 10中使用Docker版本19.03.2 我有一个目录具有自定义路径和自定义文件名的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
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'