docker中的Chocolatey安装开始失败,突然需要重新启动.NET框架

Ľub*_*ích 16 windows chocolatey docker

巧克力安装上周开始失败。Dockerfile 开头为

FROM python:3.8.2-windowsservercore-ltsc2016
SHELL ["powershell","-Command"]
RUN "Set-ExecutionPolicy Bypass -Scope Process -Force; [Net.ServicePointManager]::SecurityProtocol = 'tls12'; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))"
Run Code Online (Sandbox Code Playgroud)

日志说:

Forcing web requests to allow TLS v1.2 (Required for requests to Chocolatey.org)
Getting latest version of the Chocolatey package for download.
Not using proxy.
Getting Chocolatey from https://community.chocolatey.org/api/v2/package/chocolatey/2.0.0.
Downloading https://community.chocolatey.org/api/v2/package/chocolatey/2.0.0 to C:\Users\ContainerAdministrator\AppData\Local\Temp\chocolatey\chocoInstall\chocolatey.zip
Not using proxy.
Extracting C:\Users\ContainerAdministrator\AppData\Local\Temp\chocolatey\chocoInstall\chocolatey.zip to C:\Users\ContainerAdministrator\AppData\Local\Temp\chocolatey\chocoInstall
Installing Chocolatey on the local machine
The registry key for .Net 4.8 was not found or this is forced

Downloading 'https://download.visualstudio.microsoft.com/download/pr/2d6bb6b2-226a-4baa-bdec-798822606ff1/8494001c276a4b96804cde7829c04d7f/ndp48-x86-x64-allos-enu.exe' to 'C:\Users\ContainerAdministrator\AppData\Local\Temp\ndp48-x86-x64-allos-enu.exe' - the installer is 100+ MBs, so this could take a while on a slow connection.

Installing 'C:\Users\ContainerAdministrator\AppData\Local\Temp\ndp48-x86-x64-allos-enu.exe' - this may take awhile with no output.

.NET Framework 4.8 was installed, but a reboot is required. 

Please reboot the system and try to install/upgrade Chocolatey again.
Run Code Online (Sandbox Code Playgroud)

如何解决这个问题?

Ľub*_*ích 12

在 Dockerfile 中指定较旧的巧克力版本似乎有助于解决该问题

ENV chocolateyVersion=1.4.0
Run Code Online (Sandbox Code Playgroud)

截至上周,这是最新下载的版本。


Gar*_*ark 3

.NET Framework 4.8 的要求已经讨论了一段时间,并且在发行说明和升级指南中都提到了。

https://docs.chocolatey.org/en-us/choco/release-notes#may-31-2023

升级到 .NET Framework 的目标版本 4.8 - 请参阅#2738

https://docs.chocolatey.org/en-us/guides/upgrading-to-chocolatey-v2-v6#net-framework-4.8-required

我们建议您在安装或升级到 Chocolatey CLI v2.0.0 之前安装 .NET Framework 4.8 并重新启动。如果您要在 Docker 容器中安装 Chocolatey,请使用已安装 .NET 4.8 的映像或使用官方 Chocolatey CLI Docker 映像

您可以在此处查看用于官方 Chocolatey Docker 映像的基础映像:

https://github.com/chocolatey/choco/blob/develop/docker/Dockerfile.windows#L1

FROM mcr.microsoft.com/dotnet/framework/runtime:4.8-windowsservercore-ltsc2016
Run Code Online (Sandbox Code Playgroud)