Мне нужно перезапустить контейнер Docker во время процесса сборки из-за dotnetfx
. Dockerfile
:
FROM mcr.microsoft.com/windows/servercore:ltsc2019
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
# Install Chocolatey
RUN Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
# Universal Windows Platform build tools workload for Visual Studio 2019 Build Tools (https://chocolatey.org/packages/visualstudio2019-workload-universalbuildtools#dependencies)
RUN choco install visualstudio2019-workload-universalbuildtools --package-parameters "--includeOptional" --confirm
Но я сталкиваюсь с этой ошибкой:
Packages requiring reboot:
- dotnetfx (exit code 3010) # <--- it means a reboot is needed!
Я попытался запустить обе команды в одном и том же RUN
и добавить Restart-Computer
между ними ( разделяется на \
) и выполняет команду RUN
после каждой команды установки, но когда я делаю это, похоже, что Docker выходные данные теряются.
Могу ли я перезапустить текущий контейнер во время процесса сборки без make Docker потерялись и продолжили процесс установки?
ОБНОВЛЕНИЕ 1
Попытался установить это dotnetfx
перед выполнением последней команды, но я получил та же ошибка.
# Microsoft .NET Framework (https://chocolatey.org/packages/dotnetfx)
RUN choco install dotnetfx --confirm
Ошибка:
Packages requiring reboot:
- dotnetfx (exit code 3010)
ОБНОВЛЕНИЕ 2 (Временное решение)
Мне удалось обойти это проблема с использованием базового образа с уже установленным NET:
FROM mcr.microsoft.com/dotnet/framework/sdk:4.8