C# 停靠的应用程序找不到文件系统映像
我采取了以下步骤: 1) 在不支持Docker的情况下创建新的ASP.NET核心Web应用程序(MVC) 2) 在名为Application\Image(应用程序与控制器文件夹处于同一级别)的解决方案内创建两个新文件夹(一个在另一个内) 3) 将名为TestImage.png的文件添加到图像文件夹中 4) 使用以下代码成功访问该文件:C# 停靠的应用程序找不到文件系统映像,c#,docker,docker-compose,dockerfile,C#,Docker,Docker Compose,Dockerfile,我采取了以下步骤: 1) 在不支持Docker的情况下创建新的ASP.NET核心Web应用程序(MVC) 2) 在名为Application\Image(应用程序与控制器文件夹处于同一级别)的解决方案内创建两个新文件夹(一个在另一个内) 3) 将名为TestImage.png的文件添加到图像文件夹中 4) 使用以下代码成功访问该文件: byte[] image = System.IO.File.ReadAllBytes("Application\\Image\\TestImage.png");
byte[] image = System.IO.File.ReadAllBytes("Application\\Image\\TestImage.png");
迄今为止的预期行为;以下是有问题的一点:
5) 右键单击解决方案并选择:添加容器编排支持/Docker Compose/Linux(目标操作系统)
6) 运行项目(docker compose是启动项目)。我收到一个错误,上面写着:System.IO.IOException:“无效参数”
我用谷歌搜索了很多次,它告诉我必须配置Dockerfile将图像复制到容器中。Dockerfile当前看起来如下所示:
FROM microsoft/dotnet:2.2-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 80
FROM microsoft/dotnet:2.2-sdk AS build
WORKDIR /src
COPY WebApplication1/WebApplication1.csproj WebApplication1/
RUN dotnet restore WebApplication1/WebApplication1.csproj
COPY . .
WORKDIR /src/WebApplication1
RUN dotnet build WebApplication1.csproj -c Release -o /app
FROM build AS publish
RUN dotnet publish WebApplication1.csproj -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "WebApplication1.dll"]
我已尝试添加此行(此行下方:COPY WebApplication1/WebApplication1.csproj WebApplication1/
):
然而,我看到了同样的错误。现在我正在使用Docker,如何让应用程序读取图像
COPY WebApplication1/Application/Image/TestImage.png WebApplication1/Application/Image/