如何在docker文件中使用带有空格的路径

时间:2016-09-02 17:36:31

标签: dockerfile

我想在docker文件中编写一个cmd来复制目标C:\windows\Program Files的文件。由于程序文件中的空间,我遇到了问题。我能够将文件复制到不同的位置。任何建议将不胜感激。

我收到以下错误:

第4步:COPY" C:\ docker \ prerequisites \ MicrosoftSDKs" " C:\ Program Files (86)\ MicrosoftSDKs"

构建上下文之外的禁止路径:C:\ docker \ prerequisites \ MicrosoftSDKs  ()

3 个答案:

答案 0 :(得分:13)

使用JSON表单,你必须在大括号内使用双反斜杠

FROM microsoft/windowsservercore 
COPY ["C:\\docker\\prerequisites\\MicrosoftSDKs", "C:\\Program Files (x86)\\MicrosoftSDKs"]

您也可以使用斜杠:

COPY ["C:/Program Files/nodejs", "/windows/system32"]

答案 1 :(得分:0)

解决方法: 将带空格的脚本写入文件,在docker文件中调用文件运行脚本。

在名为 myscript.bat 的文件中写入 复制 "C:\docker\prerequisites\MicrosoftSDKs" "C:\Program Files (x86)\MicrosoftSDKs"

在 DockerFile 中

运行 myscript.bat

答案 2 :(得分:-1)

如果有空格,用这样的引号括起路径应该有用:

"C:\windows\Program Files"