Я думаю, что это проблема пути развертывания.
У меня есть простое приложение .NET без каких-либо зависимостей, и мне нужно развернуть его в образе .NET, созданном Docker. Я помещаю Dockerfile
в ту же папку с этим простым приложением .NET и запускаю следующую команду для создания образа:
docker build --force-rm --no-cache -t test --file=[path_to_docker_file] .
Строится нормально. А вот содержание Dockerfile
:
FROM microsoft/nanoserver
COPY . .
ENTRYPOINT test.exe
Однако при запуске следующей команды (для проверки):
docker run -rm test
тогда написано
'test.exe' is not recognized as an internal or external command,
operable program or batch file.
Я думал, что это должно быть скопировано в изображение (в рабочей папке по умолчанию)? Чтобы сделать это явным, я также попробовал другой докер-файл, подобный этому:
FROM microsoft/nanoserver
WORKDIR /app
COPY . /app
ENTRYPOINT test.exe
Итак, ожидаемый рабочий каталог здесь C:\app
, но все равно он не работает с той же ошибкой.
Я думаю, что это просто тривиально для кого-то, знакомого с докером, но для меня это просто странная проблема (на самом деле докеризация основного приложения .NET не имеет подобных проблем, конечно, для этого мы используем dotnet
запустить dll вместо запуска .exe непосредственно в .NET).