在docker容器内找不到视图

在docker容器内找不到视图,docker,asp.net-core,wkhtmltopdf,rotativa,Docker,Asp.net Core,Wkhtmltopdf,Rotativa,我正在使用一个容器化的ASP.NETCore(2.1)应用程序。容器正在运行Debian Stretch。除了这一个小细节外,一切都正常-每当我想使用Rotativa时,我都会收到以下信息: Unable to find view '/app/wwwroot/templates/IssuedInvoice.cshtml'. The following locations were searched:\n/app/wwwroot/templates/IssuedInvoice.cshtml 这很

我正在使用一个容器化的ASP.NETCore(2.1)应用程序。容器正在运行Debian Stretch。除了这一个小细节外,一切都正常-每当我想使用Rotativa时,我都会收到以下信息:

Unable to find view '/app/wwwroot/templates/IssuedInvoice.cshtml'. The following locations were searched:\n/app/wwwroot/templates/IssuedInvoice.cshtml
这很可能意味着该文件不存在。公平地说,我进入docker容器并发布
cat/app/wwwroot/templates/IssuedInvoice.cshtml
,我发现了什么?列出的文件没有任何错误

有没有人遇到过这样的问题?我不认为这是一个权限问题,因为应用程序在容器中以root用户身份运行

我已经在容器外测试过了,一切正常,调试和发布配置也一样

Dockerfile
你可以发布你的dockerfile吗?@jpaugh当然可以,这里:-我已经测试了有卷和没有卷,两个版本都不工作。另外,我知道apt-get-install是一种反模式,但我认为这不是问题所在,我无法立即找到问题。但是,请尝试用
[“cat”,“/app/wwwroot/templates/IssuedInvoice.cshtml”]
替换您的入口点。如果仍然失败,那就是码头工人的问题。(可能是
VOLUME
FROM
交互不好?)。(可能是丢失的系统文件?)或者,在执行volume命令之前是否失败
dotnet publish
可能正在尝试发布cshtml文件。dockerfile本身可以正常工作,但正如您所说,在使用已更改的入口点运行容器后,该文件丢失-
cat:/app/wwwroot/templates/IssuedInvoice.cshtml:没有此类文件或目录
您可以发布dockerfile吗?@jpaugh当然,这里:-我已经测试了有卷和无卷,两个版本都不工作。另外,我知道apt-get-install是一种反模式,但我认为这不是问题所在,我无法立即找到问题。但是,请尝试用
[“cat”,“/app/wwwroot/templates/IssuedInvoice.cshtml”]
替换您的入口点。如果仍然失败,那就是码头工人的问题。(可能是
VOLUME
FROM
交互不好?)。(可能是丢失的系统文件?)或者,在执行volume命令之前是否失败
dotnet publish
可能正在尝试发布cshtml文件。dockerfile本身可以正常工作,但正如您所说,在使用已更改的入口点运行容器后,文件丢失-
cat:/app/wwwroot/templates/issuedVoice.cshtml:没有此类文件或目录
FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM microsoft/dotnet:2.1-sdk AS build
WORKDIR /src
COPY ["JTEPanel.Api/JTEPanel.Api.csproj", "JTEPanel.Api/"]
COPY ["JTEPanel.Infrastructure/JTEPanel.Infrastructure.csproj", "JTEPanel.Infrastructure/"]
COPY ["JTEPanel.SmsApi/JTEPanel.SmsApi.csproj", "JTEPanel.SmsApi/"]
COPY ["JTEPanel.Domain/JTEPanel.Domain.csproj", "JTEPanel.Domain/"]
COPY ["JTEPanel.Common/JTEPanel.Common.csproj", "JTEPanel.Common/"]
RUN dotnet restore "JTEPanel.Api/JTEPanel.Api.csproj"
COPY . .
WORKDIR "/src/JTEPanel.Api"
RUN dotnet build "JTEPanel.Api.csproj" -c Release -o /app

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

FROM base AS final
WORKDIR /app
COPY --from=publish /app .
VOLUME /app/wwwroot

RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y locales libgdiplus wkhtmltopdf

RUN ln -s /usr/bin/wkhtmltopdf /app/wwwroot/Rotativa/wkhtmltopdf

RUN sed -i -e 's/# pl_PL.UTF-8 UTF-8/pl_PL.UTF-8 UTF-8/' /etc/locale.gen && \
    dpkg-reconfigure --frontend=noninteractive locales && \
    update-locale LANG=pl_PL.UTF-8

ENV LANG pl_PL.UTF-8

ENTRYPOINT ["dotnet", "JTEPanel.Api.dll"]