1

我有一个以以下 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 和 custom 的 IIS 网站SetParameters.xml

4

3 回答 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/

于 2017-03-16T14:45:13.307 回答
0

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

CMD ["powershell .\\myscript.ps1"]
于 2017-11-17T21:31:29.527 回答
0

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

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

于 2017-03-17T09:15:58.990 回答