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"
我使用带有 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"