У меня 32-битное (x86) приложение .NET Core 2.2, которое я хочу запустить в контейнере Docker.64-битная версия моего приложения прекрасно работает в контейнере, но 32-битная версия не запускается.Файлы журнала Docker не создаются.
Я публикую свое приложение с помощью этой команды:
dotnet publish -c Release -r win-x86
Это создает автономное приложение x86, включая исполняемый файл.Если я запускаю исполняемый файл, он работает нормально.
Затем я создаю образ контейнера с помощью этого файла Docker:
FROM mcr.microsoft.com/dotnet/core/runtime:2.2
WORKDIR /app
COPY bin/Release/netcoreapp2.2/win-x86/publish/ ./
ENTRYPOINT ["DockerX86Test.exe"]
и этой команды:
docker build -t x86test .
Когда я запускаюизображение с помощью этой команды:
docker run -it x86test
контейнер немедленно выходит без сгенерированных журналов Docker.
Мое приложение очень просто, как это:
class Program
{
static void Main(string[] args)
{
int i = 1;
do
{
Console.WriteLine("Hello World! - " + i);
Thread.Sleep(600);
} while (i++ < 10);
}
}
Яиспользуя неправильное базовое изображение?Мне не удалось найти базовый образ среды выполнения .NET Core с тегом x86.