我有一个要在Docker容器中运行的32位(x86).NET Core 2.2应用程序。 我的应用程序的64位版本可以在容器中正常工作,但是32位版本无法启动。没有生成Docker日志文件。
我使用以下命令发布我的应用程序:
dotnet publish -c Release -r win-x86
这将创建一个包含可执行文件的独立x86应用程序。 如果我运行可执行文件,则可以正常运行。
然后我使用此Dockerfile构建容器映像:
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);
}
}
我使用了错误的基本图像吗?我找不到标记为x86的.NET Core运行时基础映像。
答案 0 :(得分:0)
将基本映像更改为mcr.microsoft.com/windows/servercore:ltsc2019解决了我的问题。
显然,mcr.microsoft.com / dotnet / core / runtime:2.2映像无法运行32位应用程序。