2017-09-19 31 views
0

我試圖構建自己的Windows Docker鏡像。在dockerfile中,我想下載當前的activemq zip文件。我用了幾個命令,爲了做到這一點,但是這總是失敗的錯誤消息:在Windows下請求下載Dockerfile失敗,'未被識別'

我試了一下:

RUN powershell (New-Object System.Net.WebClient).DownloadFile('http://www.apache.org/dyn/closer.cgi?filename=/activemq/5.15.0/apache-activemq-5.15.0-bin.zip&action=download', 'c:\temp\activemq.zip') 

RUN powershell wget 'http://www.apache.org/dyn/closer.cgi?filename=/activemq/5.15.0/apache-activemq-5.15.0-bin.zip&action=download' -OutFile 'c:\temp\activemq.zip' 

RUN powershell Invoke-WebRequest -Uri 'http://www.apache.org/dyn/closer.cgi?filename=/activemq/5.15.0/apache-activemq-5.15.0-bin.zip&action=download' -OutFile c:\temp\activemq.zip 

RUN ['powershell', 'wget', 'http://www.apache.org/dyn/closer.cgi?filename=/activemq/5.15.0/apache-activemq-5.15.0-bin.zip&action=download', '-OutFile', 'c:\temp\activemq.zip'] 

RUN powershell -command 'wget http://www.apache.org/dyn/closer.cgi?filename=/activemq/5.15.0/apache-activemq-5.15.0-bin.zip&action=download -OutFile c:\temp\activemq.zip' 

結果

「動作」不確認爲內部或外部命令,可操作程序或批處理文件。

RUN ["powershell", "Invoke-WebRequest -Uri http://www.apache.org/dyn/closer.cgi?filename=/activemq/5.15.0/apache-activemq-5.15.0-bin.zip&action=download -OutFile c:\temp\activemq.zip"] 

導致

'[ 「的powershell」' 不被識別爲一個內部或外部的命令,可操作的程序或批處理文件。

我想,我必須逃避&符號。我嘗試了口音`但是這也不起作用。我怎樣才能下載這個文件?

編輯: 命令和下載在容器中手動工作。

+0

可以提供Dockerfile – yamenk

回答

0

好吧,我想通了。以防萬一,如果別人面臨這個問題。我在整個命令中加了雙引號。 下列情況工作:

RUN powershell "(New-Object System.Net.WebClient).DownloadFile('http://www.apache.org/dyn/closer.cgi?filename=/activemq/5.15.0/apache-activemq-5.15.0-bin.zip&action=download', 'c:\temp\activemq.zip')" 
+0

有更簡單的方法來做到這一點在這裏看到:https://github.com/docker-library/golang/blob/master/1.9/windows/windowsservercore/Dockerfile#L16 – friism

+0

我把這個網站作爲參考:https://blog.jourdant.me/post/3-ways-to-download-files-with-powershell 由於低的下載速度,我選擇了WebClient。但是,謝謝,有一些很好的圖案,看起來比我目前的解決方案更乾淨。 – JustCoding