如何编写docker build命令构建非当前目录下的Dockerfile镜像
正确docker build命令说明
错误原因
你之前的命令不符合docker build的语法规则,核心错误点有3个:
-f参数后必须紧跟Dockerfile的实际路径,不能放上下文路径.- 命令最后必须指定唯一的构建上下文路径,漏写或者写多个路径都会触发参数数量报错
- 路径里的空格(原路径中的
%20是空格的URL编码)没有用引号包裹,导致系统将空格后的内容识别为独立参数
适配你场景的可用命令
方案1:以Dockerfile所在目录为构建上下文(更简单,不需要-f参数)
如果你的Dockerfile中所有COPY/ADD指令的路径都是相对于Application目录编写的,直接执行:
docker build -t test-app "./Test/Backend/App Server/Dev/Test/Application"
方案2:以项目根目录为构建上下文(适合需要复制上层目录文件的场景)
如果你需要在Dockerfile里复制Application目录外的其他项目文件,就在项目根目录(Test文件夹的父目录)执行:
docker build -t test-app -f "./Test/Backend/App Server/Dev/Test/Application/Dockerfile" .
注意事项
- Windows系统下可以将路径中的斜杠替换为反斜杠,只要保证整个带空格的路径用双引号包裹即可
- 不要保留路径中的
%20编码,替换为实际的空格字符
内容的提问来源于stack exchange,提问作者Jim_Mcdonalds
相关产品推荐
相关产品推荐

