Я не могу запустить исполняемый файл Windows внутри докера. Пробовал как с CMD ["test.exe"], так и в интерактивном режиме. Во всех случаях исполняемый файл завершается немедленно без каких-либо сообщений об ошибках, что затрудняет отладку. Кто-нибудь испытал что-то подобное? Может дело в dll? exe отлично работает на хост-системе Win 10. Используемый образ - windowsservercore
Запустите exe внутри контейнера докеров Windows
comment
у вас когда-нибудь это работало?
- person Percy   schedule 21.07.2020
Ответы (2)
Я столкнулся с аналогичной проблемой, пытаясь запустить exe внутри контейнера на основе WindowsServercore, и, как вы подозреваете в вашем случае, проблема была связана с отсутствием dll. Я использовал procmon, чтобы определить, какие библиотеки DLL загружаются моим процессом при запуске. а затем убедиться, что все эти DLL доступны внутри контейнера. В моем случае это был распространяемый пакет Visual C++ 2015, который необходимо было установить внутри контейнера при создании образа.
person
sxm1972
schedule
07.12.2018
Вы запускаете procmon в своей обычной среде без докеров и выясняете, что загружается при запуске. Затем вы убедитесь, что то же самое доступно в вашем контейнере Docker, соответствующим образом изменив Dockerfile.
- person sxm1972; 11.12.2018
Не могли бы вы объяснить, как вы использовали procmon? документация плохая. Я установил его, но не понимаю, как получить необходимую информацию
- person Percy; 17.07.2020
Вы можете сделать что-то вроде этого:
docker run -it --rm microsoft/nanoserver powershell
Для любого из следующих действий вам потребуется Windows Server Core:
- Приложения .NET Framework
- Установщики MSI для приложений или зависимостей
- Поддержка 32-битной среды выполнения
person
UnP
schedule
07.12.2018
Исполняемый файл, который я хочу запустить, не является .NET, и у меня нет для него установщика msi. Это простой 64-битный exe. Есть ли способ запустить его как есть?
- person Mr Alexander; 07.12.2018