2017-03-16 98 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"]