我有一个关于 windowsservercore
上的文件下载的小问题 docker 形象。
我在这里列出了一个小的 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
最佳答案
尝试添加 [Net.ServicePointManager]::SecurityProtocol
Invoke-WebRequest
之前的命令显示在 docker 实例上启用的协议(protocol)并比较“好”和“坏”的协议(protocol)。比较后,您可以决定如何更新 SSL 设置。
通过设置 [Net.ServicePointManager]::SecurityProtocol = 'Ssl3', 'Tls', 'Tls11', 'Tls12'
允许所有的宽容。 .这不会危及您的安全,因为这将允许 客户与服务器协商任何安全协议(protocol),但无论如何它都会尝试使用尽可能高的安全协议(protocol)。但可以肯定的是,您可以更严格地比较“好”和“坏”构建与 [Net.ServicePointManager]::SecurityProtocol
命令会给你一个想法。
关于docker - 基于windowsservercore的docker下载问题(Appveyor, Visual Studio 2017),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51208896/