Создание файла докеров - ASP.NET Core с .NET framework в качестве среды выполнения

Как я могу создать контейнер Windows с ASP.NET Core WebApi, работающим на .NET Framework?

Какой базовый образ мне следует использовать и как мне собрать / опубликовать проект? Простой пример dockerfile был бы отличным.

В WebApi также упоминается проект .NET Framework 4.6.2.


person Miroslav Adamec    schedule 28.08.2018    source источник
comment
Вы не можете запустить полную платформу ASP.NET внутри наносервера, поэтому ваш базовый образ должен быть основан на полной платформе .NET. (hub.docker.com/r/microsoft/dotnet-framework)   -  person Gregory Suvalian    schedule 28.08.2018


Ответы (2)


Поскольку у вас есть зависимость от Full .NET framework, ваш базовый образ должен быть https://hub.docker.com/r/microsoft/dotnet-framework/, и вам придется самостоятельно установить ядро ​​.NET в образ. Microsoft не предлагает решения, в котором обе версии .NET Framework были бы представлены в одном образе.

person Gregory Suvalian    schedule 28.08.2018
comment
У меня было много проблем с этим подходом. У меня это не работает. - person Miroslav Adamec; 28.08.2018
comment
Какой approach конкретно не работает и в чем проблема. Вы просите о помощи, но не предоставляете соответствующей информации - person Gregory Suvalian; 28.08.2018
comment
Это решение было первым, что я попробовал. Мне не удалось создать проект .NET Framework с базовым образом microsoft / dotnet. - person Miroslav Adamec; 28.08.2018
comment
Тогда вам нужно будет основываться на dot-netframework. В него встроены все оптимизации для Full .NET framework. - person Gregory Suvalian; 28.08.2018
comment
Я думал о microsoft / aspnet с некоторыми дополнительными функциями. Или microsoft / iis. Вы знаете, что именно нужно установить явно? - person Miroslav Adamec; 28.08.2018
comment
Только microsoft / dotnet-framework имеет встроенную оптимизацию .NET. В частности, NGEN. См. Этот github.com/dotnet/announcements/issues/33. Эти изменения отсутствуют в microsoft / iis и т. Д. - person Gregory Suvalian; 28.08.2018

Мне удалось заставить его работать с IIS в контейнере. Мне нужно было выяснить, «Как разместить приложения ASP.NET Core в IIS». Учебное пособие - ЗДЕСЬ. Это можно сделать, установив Модуль ASP.NET Core. В итоге мой Dockerfile выглядит так:

FROM microsoft/iis

#install ASPO.NET Core Module (https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/aspnet-core-module?view=aspnetcore-2.1)
WORKDIR /temp
ADD https://download.microsoft.com/download/6/E/B/6EBD972D-2E2F-41EB-9668-F73F5FDDC09C/dotnet-hosting-2.1.3-win.exe dotnethosting.exe
RUN dotnethosting.exe /quiet /install

#you should restart IIS, but its not necessary, when youre building image
#RUN powershell -command net stop was /y
#RUN powershell -command net start w3svc

RUN powershell -NoProfile -Command Remove-Item -Recurse C:\inetpub\wwwroot\*

WORKDIR /inetpub/wwwroot

#replace with your published web application
COPY bin/release/net462/publish .
person Miroslav Adamec    schedule 30.08.2018