установить .net framework 4.7.2 в докер

Я новичок в .Net Environment, я пытаюсь внедрить здесь докер для своей фирмы. Раньше они использовали 4.5, поэтому я использовал следующий оператор в своем файле докеров:

RUN Install-WindowsFeature NET-Framework-45-ASPNET ; \
Install-WindowsFeature Web-Asp-Net45

Теперь я хочу сделать то же самое для фреймворка 4.7.2 — я думал, что это сработает, если я выполню такие операторы, как:

RUN Install-WindowsFeature NET-Framework-472-ASPNET ; \
Install-WindowsFeature Web-Asp-Net472

Но это не работает таким образом, вместо этого показывает следующую ошибку:

Install-WindowsFeature : ArgumentNotValid: The role, role service, or feature
name is not valid: 'NET-Framework-472-ASPNET'. The name was not found.
At line:1 char:1
+ Install-WindowsFeature NET-Framework-472-ASPNET ; Install-WindowsFeat ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (NET-Framework-472-ASPNET:Strin
   g) [Install-WindowsFeature], Exception
    + FullyQualifiedErrorId : NameDoesNotExist,Microsoft.Windows.ServerManager
   .Commands.AddWindowsFeatureCommand

Пожалуйста, помогите мне с тем же. Я действительно застрял и не могу ничего найти в Интернете.


person NealGul    schedule 11.01.2019    source источник


Ответы (2)


Вместо самостоятельной установки NET-Framework вы можете использовать

ОТ майкрософт/аспнет

or

ОТ Microsoft/dotnet-framework:4.7.2

использовать образ с уже установленным фреймворком dotnet.

или любая другая версия, которая вам нужна.

Все изображения см. на странице https://hub.docker.com/u/microsoft/. на докер-хабе

person Oofpez    schedule 11.01.2019
comment
Я также использую IIS в том же образе, могу ли я упомянуть операторы FROM? так как в одном будет-ОТ microsoft/iis а в другом будет упомянутый вами, это допустимо? - person NealGul; 11.01.2019
comment
вы можете использовать несколько операторов FROM, см. docs.docker.com/develop/develop -images/multistage-build, скомпилировав свой код и скопировав артефакты из результата одного этапа на новый этап, вы можете использовать несколько базовых образов. - person Oofpez; 11.01.2019
comment
вы также можете использовать COPY, чтобы получить то, что вам нужно, из определенного, даже внешнего образа, например, COPY --from=microsoft/iis:latest . . - person Oofpez; 11.01.2019
comment
попробую так же. и обязательно вернусь, чтобы поблагодарить вас, если это сработает для меня. - person NealGul; 11.01.2019
comment
Это не рабочий человек! Он показывает ошибку — «манифест для Microsoft/dotnet-framework: 4.7.2 не найден». - person NealGul; 14.01.2019
comment
возможно, это ОТ microsoft/dotnet-framework:4.7.2-sdk - person Oofpez; 01.04.2019

Итак, я поискал несколько вещей в Интернете и обнаружил, что есть одно решение, которое, если я упомяну об установке шоколада на powershell внутри моего файла докера. Эту ссылку я получил из этот пост от anothony chu :

поэтому я использовал:

# Install Chocolatey
RUN @powershell -NoProfile -ExecutionPolicy Bypass -Command "$env:ChocolateyUseWindowsCompression='false'; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
RUN powershell add-windowsfeature web-asp-net45 \
&& choco install dotnet4.7 --allow-empty-checksums -y \

в моем файле докера, и теперь все работает нормально и хорошо.

person NealGul    schedule 08.03.2019
comment
Я использовал то же решение и долго застрял на установке dotnetFX. Есть ли у вас эта проблема и как вы ее решили? - person csamleong; 25.12.2019
comment
@csamleong - я исправил эту проблему с помощью вышеупомянутого решения. - person NealGul; 15.05.2020