2017-03-25 10 views
1

私の質問はDocker for Windowsに固有です。私が使用しているバージョンはWindows 10 Pro x64の17.03.1-ce-rc1-win3(10625)です。Windowsコンテナの "Program Files(x86)"フォルダに_directly_ COPYする方法はありますか?

私は、microsoft/dotnet-framework:3.5イメージに基づいて、自分のコンテナの "Program Files(x86)"フォルダにフォルダをコピーする必要があるイメージを作成しようとしています。

マイDockerfileは超簡単です...

# escape=` 

FROM microsoft/dotnet-framework:3.5 

COPY ["TestFolder", "C:\Program Files (x86)\TestFolder"] 

docker buildを実行すると、私はドッキングウィンドウが誤って最初の空白でDEST名を解析停止のように見えます

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

をアップしました。しかし、このCOPY ["<src>", ..."<dest>"]は、空白を含むパスを扱うための構文(ref)とまったく同じです。代わりに "Foo Bar"のような他のフォルダ名を使用すると、COPY命令は期待どおりに機能します。

私の現在の回避策では、作業ディレクトリを "Prog ...(x86)"フォルダに変更してから、完全なdestパスを明示的に指定せずにCOPYを実行しています。

私は実際にCOPY命令に間違っていたかどうかを知りたいと思います。

ありがとうございました。

+0

私はこれが[issue 22874](https://github.com/docker/docker/issues/22874)の別の例だと思います。 – BMitch

+1

githubに関するこの問題を報告していただきありがとう@BMitch。 –

答えて

3

あなたはそれをJSONとして解釈され

FROM microsoft/windowsservercore 

COPY ["test.txt", "c:\\program files\\WindowsPowerShell\\Modules\\test.txt"] 

括弧内の二重のバックスラッシュを使用する必要があります。

+0

ありがとうStefan。あなたの答えはうまくいっていますが、なぜ空白を含む他の名前がエスケープせずに動作するのか理解できません。 –

関連する問題