如何在docker容器中运行asp.net核心应用程序?

时间:2019-08-02 17:59:24

标签: c# docker asp.net-core .net-core

我对.Net Core和Docker完全陌生。

我在ASP.NET Core 2.2中创建了一个项目,并选择了要运行的docker。我的目标是研究.Net Core和Docker。
在我的测试应用中,我使用Rotativa.AspNetCore

问题是:
 -当我使用IIS Express运行项目时,一切正常。
 -当我使用docker运行时,在Rotativa.AspNetCore中调用函数时项目会停止。

行抛出错误是:

return new ViewAsPdf("views/relatorios/render.cshtml", vm);

在使用IIS Express进行调试时可以使用,但是在使用Docker时失败。

我知道,此刻Rotativa.AspNetCore打电话给wkhtmltopdf.exe,也许问题出在这个电话里。

这是我的dockerfile,它是自动生成的:

FROM mcr.microsoft.com/dotnet/core/aspnet:2.2-nanoserver-1803 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM mcr.microsoft.com/dotnet/core/sdk:2.2-nanoserver-1803 AS build
WORKDIR /src
COPY ["Internacional/Internacional.csproj", "Internacional/"]
RUN dotnet restore "Internacional/Internacional.csproj"
COPY . .
WORKDIR "/src/Internacional"
RUN dotnet build "Internacional.csproj" -c Release -o /app

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

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

我的设置有什么问题吗?

1 个答案:

答案 0 :(得分:0)

wkhtmltopdf在mcr.microsoft.com/dotnet/core/aspnet图像下不起作用,因为它基于nanoserver。

nanoserver无头,因此操作系统不支持GUI。并且操作系统中未安装驱动程序打印机。

将基本映像切换到mcr.microsoft.com/windows/servercore。