gpt4 book ai didi

visual-studio - 在 VS2019 中将 ASP.NET Core Docker 镜像从 x86 部署到 ARM(Raspberry Pi)

转载 作者:行者123 更新时间:2023-12-02 18:01:11 25 4
gpt4 key购买 nike

我在 Raspberry Pi 4 上安装了 Docker,我想通过 Docker Hub 将 ASP.NET Core 3.1 应用程序(Razor pages 电影示例应用程序)部署到我的 Pi。当我从 Docker 集线器拉取镜像并尝试运行它时,出现错误

standard_init_linux.go:211: exec user process caused "exec format error

我已经在 Windows 10 x64 PC 上构建了我的 Docker 镜像。在我的 Pi 上检查 Docker 镜像时,我可以看到架构是错误的
"Architecture": "amd64",

应该可以在 x64 机器上构建针对 ARM 的 Docker 镜像 since last year ,但不知何故,我的图像是针对 x64 构建的。我已将 Dockerfile 更改为目标 linux-arm

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
WORKDIR /src
COPY ["RazorMovies/RazorMovies.csproj", "RazorMovies/"]
RUN dotnet restore "RazorMovies/RazorMovies.csproj" -r linux-arm
COPY . .
WORKDIR "/src/RazorMovies"
RUN dotnet build "RazorMovies.csproj" -c Release -o /app/build -r linux-arm

FROM build AS publish
RUN dotnet publish "RazorMovies.csproj" -c Release -o /app/publish -r linux-arm

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "RazorMovies.dll"]

并且我已将 Build -> Publish in VS2019 中的目标运行时设置更改为目标 linux-arm,如下图所示。

Docker Puslish settings in VS 2019

我知道我的 Pi 能够通过 Docker 运行 ASP.NET Core 应用程序,我已经使用找到的示例通过 Docker 运行了相同的应用程序 here .该图像将架构显示为 arm 而不是 amd64。
docker run --rm -it -p 8000:80 mcr.microsoft.com/dotnet/core/samples:aspnetapp

我的镜像针对 ARM 而不是 x64 构建,我缺少什么?

最佳答案

找到了解决方案,我还需要从

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base


FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim-arm32v7 AS base

关于visual-studio - 在 VS2019 中将 ASP.NET Core Docker 镜像从 x86 部署到 ARM(Raspberry Pi),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60158729/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com