Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于.NET5的Docker映像_Docker_.net 5 - Fatal编程技术网

用于.NET5的Docker映像

用于.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

通常我会在.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-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"]