创建 dockerfile - ASP.NET Core with .NET framework 作为运行时

Create dockerfile - ASP.NET Core with .NET framework as runtime

如何在 .NET Framework[=20 上使用 ASP.NET Core WebApi 运行 创建 windows 容器=]?

我应该使用什么基础图像以及我应该如何 build/publish 项目? dockerfile 的简单示例会很棒。

WebApi中也引用了.NET Framework 4.6.2项目

由于您依赖于完整的 .NET 框架,因此您的基础映像需要 https://hub.docker.com/r/microsoft/dotnet-framework/,并且您必须自己将 .NET 核心安装到映像中。 Microsoft 没有提供在单个图像中同时具有两个版本的 .NET Framework 的解决方案。

我设法让它在容器中与 IIS 一起工作。我不得不弄清楚 "How to host ASP.NET Core apps in IIS." 教程是 HERE. This can be done by installing ASP.NET Core module。所以最后我的 Dockerfile 看起来像:

FROM microsoft/iis

#install ASPO.NET Core Module (https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/aspnet-core-module?view=aspnetcore-2.1)
WORKDIR /temp
ADD https://download.microsoft.com/download/6/E/B/6EBD972D-2E2F-41EB-9668-F73F5FDDC09C/dotnet-hosting-2.1.3-win.exe dotnethosting.exe
RUN dotnethosting.exe /quiet /install

#you should restart IIS, but its not necessary, when youre building image
#RUN powershell -command net stop was /y
#RUN powershell -command net start w3svc

RUN powershell -NoProfile -Command Remove-Item -Recurse C:\inetpub\wwwroot\*

WORKDIR /inetpub/wwwroot

#replace with your published web application
COPY bin/release/net462/publish .