Я создал консольное приложение .Net Core 3.0, которое генерирует отчеты в формате PDF с помощью Telerik. Telerik использует библиотеку GDI + для этого. Приложение использует внутренне разработанную dll, которая зависит от журналов событий Windows, поэтому, к сожалению, о хостинге в Linux в настоящее время не может быть и речи.
Я пытаюсь запустить это приложение в док-контейнере, но изо всех сил пытаюсь его получить. работать через Visual Studio 2019 при использовании полного ядра сервера Windows образа. Насколько я понимаю, это единственный образ, в котором есть библиотеки GDI +, которые мне нужны.
При использовании servercore: 1803 я получаю эту ошибку при запуске через Visual Studio: "Невозможно запустить программу 'C: \ Program Files \ dotnet \ dotnet.exe'. Системе не удается найти указанный путь."
Судя по выводам журналов из Container Tools и Build, кажется, что все работает как положено.
Вот мой полный файл docker. Это именно то, что Visual Studio добавляет, когда вы выбираете «Добавить -> Поддержка Docker ...» за исключением используемых изображений. Обратите внимание, когда я использую 3.0-nanoserver-1803 Visual Studio запускает контейнер должным образом, но завершается неудачно, когда выполняется код создания отчета, требующий GDI.
FROM mcr.microsoft.com/windows/servercore:1803 AS base
#FROM mcr.microsoft.com/dotnet/core/runtime:3.0-nanoserver-1803 AS base
WORKDIR /app
FROM mcr.microsoft.com/windows/servercore:1803 AS build
#FROM mcr.microsoft.com/dotnet/core/sdk:3.0-nanoserver-1803 AS build
WORKDIR /src
COPY ["DM.Web.Reporting.Background/DM.Web.Reporting.Background.csproj", "DM.Web.Reporting.Background/"]
RUN dotnet restore "DM.Web.Reporting.Background/DM.Web.Reporting.Background.csproj"
COPY . .
WORKDIR "/src/DM.Web.Reporting.Background"
RUN dotnet build "DM.Web.Reporting.Background.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "DM.Web.Reporting.Background.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "DM.Web.Reporting.Background.dll"]
Я что-то здесь не так делаю? Я новичок в Docker, так что, надеюсь, я пропустил что-то простое.