首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >docker无法从wwwroot找到文件。

docker无法从wwwroot找到文件。
EN

Stack Overflow用户
提问于 2022-04-07 14:05:00
回答 1查看 1.5K关注 0票数 3

这是我第一次尝试在我的asp.net核心5.0应用程序中运行坞映像。我在docker文件中添加了以下配置。

代码语言:javascript
复制
FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build
WORKDIR /src
COPY ["Shopping.Client/Shopping.Client.csproj", "Shopping.Client/"]
RUN dotnet restore "Shopping.Client/Shopping.Client.csproj"
COPY . .
WORKDIR "/src/Shopping.Client"
RUN dotnet build "Shopping.Client.csproj" -c Release -o /app/build

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

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

我试图使用以下代码访问我的wwwroot文件夹中的文件:

代码语言:javascript
复制
private async Task<T> ReadAsync<T>(string filePath)
{

    using FileStream stream = File.OpenRead(filePath);
    return await JsonSerializer.DeserializeAsync<T>(stream);
}

public async Task<List<Product>> GetProducts()
{
    var filePath = System.IO.Path.Combine(_env.ContentRootPath, @"wwwroot\Db\product.json");
    return await ReadAsync<List<Product>>(filePath);
}

当我运行应用程序并试图访问wwwroot中的文件时,我得到的错误如下:

执行请求时发生了未处理的异常。

System.IO.FileNotFoundException:找不到文件'/app/wwwroot\Db\product.json‘。文件名:'/app/wwwroot\Db\product.json‘

我应该在docker文件中包含什么特殊的内容来复制wwwroot文件夹,还是需要添加文件路径,考虑到docker图像中的路径?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-07 14:17:52

您似乎使用的是Linux容器和Windows文件路径约定。Path.Combine确实支持这一点,但它需要一些帮助。

/app/wwwroot\Db\product.json

试试wwwroot/Db/product.json

如果这是您的问题,您可能希望检查Path.Combine的重载,因为组合方法具有接受附加参数的额外重载。

  1. 公共静态字符串组合( string path1,string path2,string path3)
  2. 公共静态字符串组合( string path1,string path2,string path3,string path4)
  3. 公共静态字符串组合(params string[] path)

您的代码: Path.Combine(_env.ContentRootPath @"wwwroot\Db\product.json");

然后就变成了 Path.Combine(basePath,"wwwroot","Db","product.json");

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71783686

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档