【问题标题】:Docker build can't find NETFramework Version 5Docker 构建找不到 NETFramework 版本 5
【发布时间】:2021-06-23 23:40:12
【问题描述】:

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

sudo dnf install dotnet-sdk-5.0

这是当前状态。

然后我创建了一个看起来像这样的 Dockerfile。

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 及其运行时已安装。那么错误在哪里呢?我有错误的版本吗?

编辑:这是我的目标。 (对不起,它是德语...)

【问题讨论】:

  • 要调试这个,你可以在Dockerfile 中的RUN ["dotnet", "restore"] 之前添加一个RUN ["dotnet", "--info"] 吗?

标签: asp.net docker centos


【解决方案1】:

您正在使用过期的容器:


$ 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"

【讨论】:

    猜你喜欢
    • 2020-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-05
    • 2017-04-11
    • 1970-01-01
    • 2021-07-15
    相关资源
    最近更新 更多