我有一个 32 位 (x86) .NET Core 2.2 应用程序,我想在 Docker 容器中运行。我的应用程序的 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 运行时基础映像。