Docker Windows 2019 странный путь входа изображения проблемы - PullRequest
0 голосов
/ 30 апреля 2019

Я заметил, что поведение обработки пути изменилось с ws2016 imgae microsoft/windowsservercore:latest на ws2019 image mcr.microsoft.com/windows/servercore:ltsc2019.

На microsoft/windowsservercore:latest изображении все команды ниже работают.

Однако для mcr.microsoft.com/windows/servercore:ltsc2019 образа точка входа должна быть задана как абсолютный путь, чтобы иметь возможность вызывать исполняемый файл в контейнере Docker. Или установите точку входа на powershell.

Кто-нибудь знает, что изменилось между microsoft/windowsservercore:latest и mcr.microsoft.com/windows/servercore:ltsc2019 образом при обработке пути к исполняемому файлу?

Репро шаги:

Условие: найдите любой исполняемый файл и назовите его test.exe

Dockerfile

FROM mcr.microsoft.com/windows/servercore:ltsc2019
ADD test.exe test.exe

Создайте этот Dockerfile как test-image

Запустить это изображение

Рабочая команда

docker run --entrypoint powershell test-image "C:\test.exe"

docker run --entrypoint C:\test.exe test-image

docker run test-image "C:\test.exe"

Не рабочие команды (однако все они работают на microsoft/windowsservercore:latest изображении)

docker run --entrypoint ./test.exe test-image

docker run test-image  "./test.exe"


# error message
C:\Program Files\Docker\docker.exe: Error response from daemon: container ff8cff9dbd233a2f0ab3764203da42c47249b66a84b8369643315f2e210f86c6 encountered an error during CreateProcess: failure in a Windows system call: The system cannot find the file specified. (0x2) extra info: {"CommandLine":".\test.exe ","WorkingDirectory":"C:\\","CreateStdInPipe":true,"CreateStdOutPipe":true,"CreateStdErrPipe":true,"ConsoleSize":[0,0]}.

...