c# - 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,如何让应用程序读取图像?
解决方案
推荐阅读
- .net - 可以创建 .NetCore 和 Angular2 混合应用程序
- python - 如何使用 OpenCV 转换颜色?
- javascript - 使用表单数据上传多个文件,表单数据结构在 1 个文件与 2 个文件与 3 个以上文件上发生变化
- shell - "?]0;" 是什么意思
- javascript - 从表中删除时从数组中删除项目
- google-app-engine - 通过 KeyProperty 字段从 ndb 查询中获取数据
- python - 当有很多列时,将 Pandas df 数据类型定义为字典的最佳方法是什么?
- azure - Azure DevOps 在取消上一个阶段后进入下一个阶段
- amazon-web-services - 普鲁米导入抛出“未授权执行此操作”
- django - 根据类别 django 获取数据