繁体   English   中英

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

[英]How to run an asp.net core application in docker container?

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

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

问题是:
- 当我使用 IIS Express 运行项目时,一切正常。
- 当我使用Rotativa.AspNetCore运行时,当我调用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"]

我的设置有什么问题?

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

nanoserver 是无头的,因此操作系统不支持 GUI。 并且操作系统中没有安装驱动打印机。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM