用于Linux arm的.NET Core Docker映像(Raspberry pi)



我制作了一个简单的.Net 6.0控制台应用程序,并使用带有linux arm 标志的dotnet publish命令构建了它

dotnet pubish-c发行版-r linux arm

上面生成linux ARM dll。

然后我使用Dockerfile为它创建了一个图像

FROM mcr.microsoft.com/dotnet/runtime:6.0
COPY bin/Release/net6.0/linux-arm /MyDockerApp
WORKDIR /MyDockerApp
ENTRYPOINT ["dotnet", "DockerTest.dll"]

(我没有构建它,因为我的代码已经使用dotnet发布为arm-v7构建了(

现在我正试图在我的Raspberry pi(Arm/Linux/v7(上作为容器运行此映像,但我收到了以下错误。

警告:请求的映像的平台(linux/aamd64(不匹配检测到的主机平台(linux/arm/v7(,并且没有特定的平台请求的standard_init_linux.go:228:exec用户进程导致:exec格式错误

我如何编译它,以便在我的Raspberrypi 4上运行它(我不想在Raspberry pi上构建我的代码,我只想使用RunTime(。

Dockerfile中为RaspberryPI使用相应的ARM.NET运行时映像

例如,这个应该工作

FROM mcr.microsoft.com/dotnet/runtime:6.0.0-focal-arm32v7

而不是默认的

FROM mcr.microsoft.com/dotnet/runtime:6.0

这是用于普通PC的

最新更新