繁体   English   中英

Dockerfile ENTRYPOINT EXEC表单不适用于Powershell

[英]Dockerfile ENTRYPOINT EXEC form not working with Powershell

我必须遵循(简单的)Dockerfile:

FROM microsoft/windowsservercore:latest
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
ENTRYPOINT ["Get-ChildItem ", "-Path", "'C:\Program Files\'"]

如果我运行容器。 我收到以下错误:

在第1行:char:77 + ... ference ='Stop'; $ ProgressPreference ='SilentlyContinue'; [“ Get-Chi ... +〜'['之后缺少类型名称。在第1行:char:93 + ... $ ProgressPreference ='SilentlyContinue'; [[” Get-ChildItem“,” -Path“ ... +〜参数列表中缺少参数+ CategoryInfo:ParserError:(:) [],ParentContainsErrorRecordEx接收+ FullyQualifiedErrorId:MissingTypename

我也尝试过:

 ENTRYPOINT ["Get-ChildItem ", "-Path 'C:\Program Files\'"]

并得到相同的错误。

如果我使用Dockerfile中的ENTRYPOINT形式的外壳程序:

FROM microsoft/windowsservercore:latest
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
ENTRYPOINT Get-ChildItem -Path 'C:\Program Files\'

一切正常。

有人可以告诉我在使用ENTRYPOINT时如何在“ exec-form”中编写此简单的PS命令。 我问,因为docker引用指出“ exec-form”是首选。

谢谢

尝试删除“ Get-ChildItem”末尾的尾随空格

失败的是,它将程序文件后的\\'解释为转义字符吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM