Docker Windows Containers CMD - 命令未运行

问题描述 投票:1回答:3

我有一个以以下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网站?

docker docker-windows windows-server-container
3个回答
1
投票

尝试

# 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
投票

试试这个,可能是斜线的问题。

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


0
投票

您可以将PS脚本传递给docker命令,如下所示:

CMD ["powershell .\\myscript.ps1"]
© www.soinside.com 2019 - 2024. All rights reserved.