.net核心应用程序的Docker容器中的写入文件访问被拒绝

问题描述

我正在尝试在应用执行目录中写入文件

C#代码

public void SaveFilesToDisk(List<ExportFile> exportFiles,string subDirectory = null)
{
    foreach (var file in exportFiles)
    {
        var hasSubDir = !string.IsNullOrWhiteSpace(subDirectory);
        var path = hasSubDir ? Path.Combine(subDirectory,file.FileName) : file.FileName;
        if (hasSubDir && !Directory.Exists(subDirectory))
        {
            Directory.CreateDirectory(subDirectory);
        }
        if (File.Exists(path))
        {
            File.Delete(path);
        }
        File.WriteAllLines(path,file.Lines);
    }
}

Dockerfile

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 . ./
WORKDIR "/src/Export.Api"
RUN dotnet build "Export.Api.csproj" -c Release -o /app

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

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

但是当应用程序尝试写入文件时,出现错误

IOException: Operation not permitted
UnauthorizedAccessException: Access to the path `/app/file.txt` is denied.

如何授予访问权限以在Docker容器中写入文件并创建应用程序的子文件夹?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...