Форма Dockerfile ENTRYPOINT EXEC не работает с Powershell - PullRequest
0 голосов
/ 28 мая 2018

Мне нужно следующее (простое) Dockerfile:

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

Если я запускаю контейнер.Я получаю следующую ошибку:

В строке: 1 символ: 77 + ... ference = 'Stop';$ ProgressPreference = 'SilentlyContinue';["Get-Chi ... + ~ Отсутствует имя типа после '['. В строке: 1 символ: 93 + ... $ ProgressPreference = 'SilentlyContinue'; [" Get-ChildItem "," -Path "...+ ~ Отсутствует аргумент в списке параметров. + CategoryInfo: ParserError: (:) [], ParentContainsErrorRecordEx ception + FullyQualifiedErrorId: MissingTypename

Я также попытался:

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

и получилта же ошибка.

Если я использую оболочку из ENTRYPOINT в Dockerfile:

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

Все отлично работает.

Может кто-нибудь сказать мне, как написать этот простой PSКоманда в "exec-форме" при использовании ENTRYPOINT. Я спрашиваю, так как ссылка на докер утверждает, что "exec-форма" является предпочтительной.

Thx

1 Ответ

0 голосов
/ 28 мая 2018

Попробуйте удалить завершающий пробел в конце «Get-ChildItem»

Если это не так, интерпретируется ли он после Program Files как экранированный символ?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...