我有一个以以下CMD结尾的docker镜像:
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镜像后运行命令:
docker exec openid powershell c:\install\settings\install.ps1
它运行正常。
有办法做到这一点吗?
或者有更好的方法使用webdeploy和自定义SetParameters.xml
部署IIS网站?
尝试
# 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/
试试这个,可能是斜线的问题。
CMD ["powershell", "c:/install/settings/install.ps1"]
您可以将PS脚本传递给docker命令,如下所示:
CMD ["powershell .\\myscript.ps1"]