Docker 构建找不到 NETFramework 版本 5

Docker build can't find NETFramework Version 5

我使用带有 CentOS 的系统来托管我的 ASP.NET Core API。我想用 Docker 来实现这一点。然后我在我的服务器上安装了必要的 SDK。

sudo dnf install dotnet-sdk-5.0

这是当前状态。

然后我创建了一个 Docker 文件,看起来像这样。

FROM microsoft/dotnet:latest

COPY ./coinz-api /app
WORKDIR /app

RUN ["dotnet", "restore"]
RUN ["dotnet", "build"]

ENV ASPNETCORE_URLS http://*:5001

EXPOSE 5001

ENTRYPOINT ["dotnet", "run"] 

当我尝试构建 Docker 容器时,会发生这种情况。

在我看来,所需的 SDK 及其运行时已安装。那么错误在哪里呢?我的版本有误吗?

编辑:这是我的目标。 (抱歉是德语...)

您使用的是过时的容器:


$ podman run -it docker.io/microsoft/dotnet:latest dotnet --info
.NET Core SDK (reflecting any global.json):
 Version:   2.1.816
 Commit:    f03a7f8e72

Runtime Environment:
 OS Name:     debian
 OS Version:  9
 OS Platform: Linux
 RID:         debian.9-x64
 Base Path:   /usr/share/dotnet/sdk/2.1.816/

Host (useful for support):
  Version: 2.1.28
  Commit:  612cb8b183

.NET Core SDKs installed:
  2.1.816 [/usr/share/dotnet/sdk]

.NET Core runtimes installed:
  Microsoft.AspNetCore.All 2.1.28 [/usr/share/dotnet/shared/Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.App 2.1.28 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 2.1.28 [/usr/share/dotnet/shared/Microsoft.NETCore.App]

To install additional .NET Core runtimes or SDKs:
  https://aka.ms/dotnet-download

这是 .NET Core 2.1 容器镜像!

您应该使用更新的 .NET 容器映像。较新的 .NET 容器映像发布在 mcr.microsoft.com。 The official .NET on docker docs 建议这样:

FROM mcr.microsoft.com/dotnet/sdk:5.0

就是说,如果您希望您的容器映像与 CentOS 主机匹配,您也可以从 CentOS 容器映像开始,在其中安装 .NET SDK。也许是这样的?

FROM registry.centos.org/centos:8

RUN "sudo dnf install -y dotnet-sdk-5.0"