首页 > 解决方案 > Dockerized 应用程序找不到文件系统映像

问题描述

我已按照以下步骤操作:

1) 在没有 Docker 支持的情况下创建一个新的 ASP.NET Core Web 应用程序 (MVC)。

2) 在名为 Application\Image 的解决方案中创建两个新文件夹(一个在另一个文件夹中)(Application 与 Controllers 文件夹处于同一级别)。

3) 将一个名为 TestImage.png 的文件添加到 Image 文件夹中。

4)使用以下代码成功访问文件:

byte[] image = System.IO.File.ReadAllBytes("Application\\Image\\TestImage.png");

到目前为止的预期行为;这是有问题的一点:

5) 右键单击​​解决方案并选择:Add Container Orchestration Support/Docker Compose/Linux (target OS)

6)运行项目(docker-compose为启动项目)。我收到一条错误消息:System.IO.IOException: 'Invalid argument'

我做了很多谷歌搜索,它告诉我必须配置 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/

COPY WebApplication1/Application/Image/TestImage.png WebApplication1/Application/Image/

但是,我看到了同样的错误。现在我正在使用 Docker,如何让应用程序读取图像?

标签: c#dockerdocker-composedockerfile

解决方案


推荐阅读