2017-03-16 108 views
0

我有一個用下面的CMD結束泊塢窗圖像:泊塢窗口的容器CMD - 命令沒有運行

CMD ["powershell", "c:\install\settings\install.ps1"]

CMD powershell c:\install\settings\install.ps1

它沒有執行(或者可能音量尚未安裝)。

設置被放置在一個安裝的卷,並且它開始:

docker run -d -p 80:80 --name openid --rm -v D:\settings\:c:\install\settings mydocker

如果我在啓動搬運工圖像之後運行命令:

docker exec openid powershell c:\install\settings\install.ps1

它運行細。

有沒有辦法做到這一點?

或者有更好的方式部署IIS網站與webdeploy和自定義SetParameters.xml

+0

你試過當你試圖安裝的東西使用入口點,而不是CMD在你的搬運工文件或運行?看看http://goinbigdata.com/docker-run-vs-cmd-vs-entrypoint/看看好的差異(如果需要的話) – hecko84

+0

我用DSC來準備容器和IIS裏面的IIS。依靠調試DOCKERFILE執行是一場噩夢。 DSC提供可重複和更重要的可調試方式來處理您的應用程序部署。細節在這裏。 https://github.com/artisticcheese/artisticcheesecontainer/wiki –

回答

0

嘗試

# set up the shell 
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop';"] 
CMD ["powershell", "c:\\\install\\\settings\\\install.ps1"] 

在Windows中,反斜槓是文件路徑分隔符,所以我們必須 逃脫它Dockerfiles,否則會被解釋爲 續行。文件路徑則有雙反斜線\和 單反斜線用於線從連續

https://blog.sixeyed.com/windows-dockerfiles-and-the-backtick-backslash-backlash/

+0

沒有工作:( –

+0

我已經添加了PowerShell安裝程序,你能檢查它是否有效嗎?否則,你的完整dockerfile會有用。 – ptrk

+0

... 完整文件(對路徑進行了較小更改 –

0

試試這個,可能是與斜線的一個問題。

CMD ["powershell", "c:/install/settings/install.ps1"]

+0

沒有工作:( –

+0

)您是否在Dockerfile中運行了多個命令?是否可以粘貼dockerfile的內容(如果不是機密的話)? – ProgrammerBoy

+0

'#獲取windows' '從Microsoft/aspnet' '#安裝網頁deploy' '副本d:/WebDeploy_amd64_en-US.msi /安裝/ WebDeploy_amd64_en-US.msi' 'WORKDIR/install' COPY D:/ webdeploy/*/install /' 'CMD [「powershell運行powershell啓動 - 進程msiexec.exe -ArgumentList'/ic:\install\WebDeploy_amd64_en-US.msi/qn'-Wait' ' 「,」c:\ install \ settings \ install.ps1「] –

0

你可以通過PS腳本泊塢窗命令,因爲這:

CMD ["powershell .\\myscript.ps1"]