Dockerized приложение не находит образ файловой системы - PullRequest
1 голос
/ 28 апреля 2019

Я выполнил следующие действия:

1) Создайте новое базовое веб-приложение ASP.NET (MVC) без поддержки Docker.

2) Создайте две новые папки (одна внутри другой) внутри решения под названием Приложение \ Изображение (Приложение находится на том же уровне, что и папка Контроллеры).

3) Добавьте файл с именем TestImage.png в папку Image.

4) Для успешного доступа к файлу используйте следующий код:

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

Ожидаемое поведение до сих пор; вот проблемный бит:

5) Щелкните правой кнопкой мыши по решению и выберите: Добавить поддержку оркестровки контейнеров / Docker Compose / Linux (целевая ОС)

6) Запустите проект (docker-compose является стартовым проектом). Я получаю сообщение об ошибке: System.IO.IOException: 'Invalid argument'

Я много занимался поиском в Google, и он говорит мне, что мне нужно настроить 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?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...