用于.NET5的Docker映像
通常我会在.NETCore3.1中使用以下图片,效果很好用于.NET5的Docker映像,docker,.net-5,Docker,.net 5,通常我会在.NETCore3.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 出于实验原因,我启动了一个新的.NET5项目,并创建了dockerfile,其中包含以下内容 FROM mcr.microsoft.com/dotnet/core/aspnet:5.0-bu
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
出于实验原因,我启动了一个新的.NET5项目,并创建了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
并有以下问题:
=> 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
正如我读到的,它被更改为:
FROM mcr.microsoft.com/dotnet/aspnet:5.0-buster-slim AS base
FROM mcr.microsoft.com/dotnet/sdk:5.0-buster-slim AS build
此外,还提到了以下内容:
作为.NET 5.0版本的一部分,所有.NET Docker映像(包括
.NET核心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 .NET 5仅在Linux Debian发行版上运行 mcr.microsoft.com/dotnet/aspnet:5.0-nanoserver-1809 .NET 5仅在Windows Nano服务器上运行(Windows服务器版本1809)
你不必自己写这个。一个快速的方法是使用dockerfile生成器,正如Julio Casal在本快速教程中所解释的那样 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"]