.net 5 的 Docker 镜像

mas*_*720 24 docker .net-5

通常我将以下图像用于 .net core 3.1 并且它工作正常。

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
Run Code Online (Sandbox Code Playgroud)

我出于实验原因启动了一个新的 .net 5 项目并创建dockerfile了以下内容

FROM mcr.microsoft.com/dotnet/core/aspnet:5.0-buster-slim AS base 
FROM mcr.microsoft.com/dotnet/core/sdk:5.0-buster AS build
Run Code Online (Sandbox Code Playgroud)

并有以下问题:

 => ERROR [internal] load metadata for mcr.microsoft.com/dotnet/core/sdk:5.0-buster                           0.2s
 => ERROR [internal] load metadata for mcr.microsoft.com/dotnet/core/aspnet:5.0-buster-slim                   0.2s
 => CANCELED [build 1/7] FROM mcr.microsoft.com/dotnet/core/sdk:5.0-buster                                    0.0s
 => => resolve mcr.microsoft.com/dotnet/core/sdk:5.0-buster                                                   0.0s
 => [internal] load build context                                                                             0.0s
 => ERROR [base 1/2] FROM mcr.microsoft.com/dotnet/core/aspnet:5.0-buster-slim                                0.0s
 => => resolve mcr.microsoft.com/dotnet/core/aspnet:5.0-buster-slim
Run Code Online (Sandbox Code Playgroud)

may*_*ʎɐɯ 41

当我在这里阅读时,它更改为:

FROM mcr.microsoft.com/dotnet/aspnet:5.0-buster-slim AS base
FROM mcr.microsoft.com/dotnet/sdk:5.0-buster-slim AS build
Run Code Online (Sandbox Code Playgroud)

docker hub上也提到了更多信息

作为 .NET 5.0 版本的一部分,所有 .NET Docker 映像(包括 .NET Core 2.1 和 3.1)都已转换为一组新的 Docker 存储库,如下所述。将继续对旧存储库位置中支持的标签进行更新,以实现向后兼容性。请更新对这些新名称的任何存储库引用。有关更多信息,请参阅 .NET 5.0 存储库重命名公告。

在此处输入图片说明


编辑: 图像描述:

图片 注释
mcr.microsoft.com/dotnet/runtime:5.0 .NET 5 多架构:支持 Linux 和 Windows Nano Server,具体取决于 Docker 主机。
mcr.microsoft.com/dotnet/aspnet:5.0 ASP.NET Core 5.0 多架构:支持 Linux 和 Windows Nano Server,具体取决于 Docker 主机。aspnetcore 映像对 ASP.NET Core 进行了一些优化。
mcr.microsoft.com/dotnet/aspnet:5.0-buster-slim 在 Linux Debian 发行版上仅运行 .NET 5
mcr.microsoft.com/dotnet/aspnet:5.0-nanoserver-1809 .NET 5 仅运行时在 Windows Nano Server(Windows Server 版本 1809)上

图片说明参考


sam*_*x01 6

您不必自己编写此内容。一种快速的方法是使用 dockerfile 生成器,如 Julio Casal 在本快速教程https://www.youtube.com/watch?v=wQSuZFd01tY中所解释的那样。

MyApp 的示例代码如下所示

FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

ENV ASPNETCORE_URLS=http://+:80

FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build
WORKDIR /src
COPY ["MyApp/MyApp.csproj", "MyApp/"]
RUN dotnet restore "MyApp/MyApp.csproj"
COPY . .
WORKDIR "/src/MyApp"
RUN dotnet build "MyApp.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "MyApp.csproj" -c Release -o /app/publish

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

Run Code Online (Sandbox Code Playgroud)