我无法为Raspberry Pi 3 Model B +构建有效的ASP .NET Core映像。 每当我尝试运行该应用程序时,我都会收到错误消息:
standard_init_linux.go:190:exec用户进程导致“ exec格式错误”
但是,当我尝试使用Github(docker run --rm microsoft/dotnet-samples
)的预构建.NET Core Docker映像时,一切正常。
当我简单地下载了相同的存储库并使用docker build . -t aspnettest-f Dockerfile
使用提供的Dockerfile构建了相同的代码时,将其推到Raspberrry,并得到与以前相同的错误:
我在做什么错?我尝试使用提供的不同Dockerfile(例如this one)构建示例代码,但是所有结果都导致相同的错误。
答案 0 :(得分:2)
在Dockerfile中,如果要在Windows下构建映像,则需要将FROM microsoft/dotnet:2.1-runtime AS runtime
替换为FROM microsoft/dotnet:2.1-runtime-stretch-slim-arm32v7 AS runtime
。
构建ASP.NET Core应用程序时,ARM32的运行时映像为microsoft/dotnet:2.1-aspnetcore-runtime-stretch-slim-arm32v7
。
在Raspberry上构建图像应该可以正常工作。
这是因为microsoft/dotnet:2.1-runtime
是多体系结构,并且docker build
选择了与当前处理器体系结构匹配的映像。因此,在Windows下构建时,生成的图像将用于amd64。