如何将_directly_ COPY文件复制到Windows容器中的“Program Files(x86)”文件夹中?

我的问题是特定于Docker的Windows。 我使用的版本是Windows 10 Pro x64上的17.03.1-ce-rc1-win3(10625)。

我试图创build一个图像,我需要将文件夹复制到我的容器中的“程序文件(x86)”文件夹基于Microsoft / Dotnet框架:3.5图像。

我的Dockerfile是超级简单的…

# escape=` FROM microsoft/dotnet-framework:3.5 COPY ["TestFolder", "C:\Program Files (x86)\TestFolder"] 

运行docker build ,我结束了

 Step 2/2 : COPY ["TestFolder", "C:\Program Files (x86)\TestFolder"] GetFileAttributesEx C:\Program: The system cannot find the file specified. 

它看起来像docker错误地停止parsing在第一个空白的名称。 然而,这个COPY ["<src>", ..."<dest>"]正好是处理包含空格(ref)的path的语法。 如果我使用任何其他文件夹名称(如“Foo Bar”),则COPY指令正常工作。

所以我目前的解决方法是先使用WORKDIR将工作目录更改为“Prog …(x86)”文件夹,然后执行COPY而不明确给出完整的目标path。

但是我真的很想知道我是否对COPY指令有任何问题。

谢谢。

你必须在大括号内使用双反斜杠

 FROM microsoft/windowsservercore COPY ["test.txt", "c:\\program files\\WindowsPowerShell\\Modules\\test.txt"] 

它被解释为JSON。