я запускаю докерфайл
#servercore its mine tag
FROM servercore
COPY ./prog./work/prog
WORKDIR /work
CMD ["cmd.exe", "/c", "start /b C:\\work\\prog\\prog.exe"]
затем внутри контейнера я набираю список задач и вижу в этом случае моя программа не работает
Также я попытался запустить exe внутри Windows ServerCore с помощью терминала. а у меня программа полностью рабочая, что видно по памяти в диспетчере задач
Как запустить exe через dockerfile?
я заменил CMD на ENTRYPOINT, но у меня тот же результат, что и на первой картинке (10 000 тыс.)
Значит, ваша программа действительно запускается при запуске, не так ли? Если он не работает правильно в только что запущенной системе, возможно, это проблема вашего приложения, а не докера. Есть ли какие-либо зависимости от других сервисов/ресурсов, которые необходимо сначала инициализировать?
моя программа не имеет никаких зависимостей от других сервисов/ресурсов, которые необходимо сначала инициализировать. Также я показываю второй srceenshot, если я запускаю exe внутри servercore в терминальной программе.exe все хорошо, программа работает
но моя задача заставить его корректно работать при запуске docker контейнера без дальнейшего вмешательства
Что ж, тогда вам нужно выяснить, почему ваша задача не работает должным образом, если ее запустить сразу после запуска. Точка входа просто вызывает предоставленный исполняемый файл.
Это могло произойти из-за того, что когда вы пытаетесь запустить свой app.exe с другого пути, ваш app. Это может вызвать некоторое исключение, потому что приложение не видит все зависимости/ресурсы и т. д.
Вы должны изменить свой рабочий каталог с WORKDIR /work
на WORKDIR /work/prog
и в CMD ./prog.exe.
определите свой исполняемый файл как
ENTRYPOINT