Docker 上的 .NET Core:拒绝访问路径

Art*_*ani 5 linux docker .net-core

我有一个 .Net 核心 Web 应用程序,它托管在 CentOS 机器上。一切正常,除非我调用一个需要服务器上特定文件的函数(它组合了多个图像并生成一个 PDF),我收到以下错误:

System.UnauthorizedAccessException:拒绝访问路径“[path]”。

该项目是使用 Visual Studio 自动生成的 dockerfile 和 docker-compose 文件构建的。

以下是内容:

文件

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
WORKDIR /app
EXPOSE 80

FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
WORKDIR /src
COPY ["lifeandme-v2/lifeandme-v2.csproj", "lifeandme-v2/"]
RUN dotnet restore "lifeandme-v2/lifeandme-v2.csproj"
COPY . .
WORKDIR "/src/lifeandme-v2"
RUN dotnet build "lifeandme-v2.csproj" -c Release -o /app/build

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

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
COPY . /app/publish
ENTRYPOINT ["dotnet", "lifeandme-v2.dll"]
Run Code Online (Sandbox Code Playgroud)

应用程序在运行时尝试访问的文件位于我的项目根子目录中,因此我添加了倒数第二行,以便将我的项目根目录的全部内容复制到最终容器中。

我还尝试在容器运行时进入容器,并将整个 /app 文件夹的 chmod 更改为 777,但仍然出现相同的错误。我已经尝试将它添加到我的 dockerfile 中,就在最后一行之前:

RUN chmod -R 777 /app
Run Code Online (Sandbox Code Playgroud)

再次,同样的错误。