0

windowsservercore我对docker image上的文件下载有一个小问题。我在这里列出了一个小型 docker 映像:https ://github.com/EndurantDevs/sonarqube-mysql-windows-docker

如您所见 - 有四个类似的 Docker 文件:基于 2 个版本的 Windows 容器的 SonarQube 的 2 个版本(nanoserver以及windowsservercore,通过openjdk图像)

在构建过程中,所需文件的下载nanoserver顺利进行。

但是,在windowsservercore图像上我遇到了这个问题:

Invoke-WebRequest : The underlying connection was closed: An unexpected error  occurred on a send. At line:1 char:1
+ Invoke-WebRequest https://sonarsource.bintray.com/Distribution/sonarq ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (System.Net.HttpWebRequest:Htt     pWebRequest) [Invoke-WebRequest], WebException
    + FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShe     ll.Commands.InvokeWebRequestCommand

因此,问题出现在从运行良好的相同服务器上下载相同文件时nanoserver

应用包括 Tls12 在内的所有已知修复都没有帮助。我认为这是 Appveyor 端主机上的问题。但是,即使我尝试过的注册表修复也无济于事。

这是要比较的构建信息:https ://ci.appveyor.com/project/dnikolayev/sonarqube-mysql-windows-docker/build/1.0.53

4

1 回答 1

1

尝试在显示 docker 实例上启用的协议[Net.ServicePointManager]::SecurityProtocol之前添加命令并比较“好”和“坏”一个。Invoke-WebRequest比较后,您可以决定如何更新 SSL 设置。

最宽容的将是通过设置允许所有[Net.ServicePointManager]::SecurityProtocol = 'Ssl3', 'Tls', 'Tls11', 'Tls12'。这不会危及您的安全,因为这将允许客户端与服务器协商任何安全协议,但无论如何它都会尝试使用最高级别。但可以肯定的是,您可以更加严格,并且使用[Net.ServicePointManager]::SecurityProtocol命令比较“好”和“坏”构建会给您一个想法。

于 2018-07-06T18:56:32.733 回答