C# .net core 5 docker以下示例未运行

C# .net core 5 docker以下示例未运行,c#,docker,asp.net-core,.net-5,C#,Docker,Asp.net Core,.net 5,我按照我在网上找到的说明进行操作,这是我的dockerfile: FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build WORKDIR /source # copy csproj and restore as distinct layers COPY *.csproj . RUN dotnet restore # copy and publish app and libraries COPY . . RUN dotnet publish -c rele

我按照我在网上找到的说明进行操作,这是我的dockerfile:

FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build
WORKDIR /source

# copy csproj and restore as distinct layers
COPY *.csproj .
RUN dotnet restore

# copy and publish app and libraries
COPY . .
RUN dotnet publish -c release -o /app --no-restore

# final stage/image
FROM mcr.microsoft.com/dotnet/runtime:5.0
WORKDIR /app
COPY --from=build /app .
ENTRYPOINT ["my-app"]
我还有一个.dockrignore,因为我得到了超出目录长度的错误:

Dockerfile
[b|B]in
[O|o]bj
当我尝试运行它时,会出现以下错误,说明找不到aspnetcore:

It was not possible to find any compatible framework version
The framework 'Microsoft.AspNetCore.App', version '5.0.0' was not found.
  - No frameworks were found.

You can resolve the problem by installing the specified framework and/or SDK.

The specified framework can be found at:
  - https://aka.ms/dotnet-core-applaunch?framework=Microsoft.AspNetCore.App&framework_version=5.0.0&arch=x64&rid=debian.10-x64

我在这里做错了什么吗?

通常入口点看起来像
ENTRYPOINT[“dotnet”,“my app.dll”]
,而不仅仅是
ENTRYPOINT[“my app”]

除了@mtkachenko提到的入口点不正确的答案外,你有一个aspnet应用程序,因此你需要aspnet库管理员。使用
mcr.microsoft.com/dotnet/aspnet:5.0
代替运行时映像
mcr.microsoft.com/dotnet/aspnet:5.0
,我如您所述对其进行了更改,现在出现了另一个错误:
无法执行,因为找不到应用程序或未安装兼容的.NET SDK。可能的原因包括:*您打算执行.NET程序:应用程序“我的应用程序”不存在。*您打算执行.NET SDK命令:无法找到任何已安装的.NET SDK。从以下位置安装.NET SDK:https://aka.ms/dotnet-download
当我添加.dll时,通常是“我的app.dll”,我返回到报告的第一个错误。@PaulW show docker build logsOh,好的。你有一个aspnet应用程序。使用
mcr.microsoft.com/dotnet/aspnet:5.0
代替运行时映像。我认为这应该可以解决问题。您应该在最后一步使用
aspnet:5.0
而不是
runtime:5.0