Проблемы с загрузками в докере на основе windowsservercore (Appveyor, Visual Studio 2017)
У меня есть небольшой вопрос о загрузке файлов на windowsservercore
изображение докера. У меня есть небольшое изображение докера, перечисленное здесь: https://github.com/EndurantDevs/sonarqube-mysql-windows-docker
Как видите, существует четыре похожих файла Docker: 2 версии SonarQube, основанные на 2 версиях контейнеров Windows (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
1 ответ
Попробуйте добавить [Net.ServicePointManager]::SecurityProtocol
команда перед Invoke-WebRequest
отобразить протоколы, включенные в экземпляре докера, и сравнить "хороший" и "плохой". После сравнения вы можете принять решение, как обновить настройки SSL.
Большинство прощающих будет позволено всем, установив [Net.ServicePointManager]::SecurityProtocol = 'Ssl3', 'Tls', 'Tls11', 'Tls12'
, Это не обязательно поставит под угрозу вашу безопасность, поскольку это позволит клиенту согласовать любой протокол безопасности с сервером, но в любом случае он попытается использовать максимально возможный. Но вы можете быть более строгими и сравнивать "хорошие" и "плохие" сборки с [Net.ServicePointManager]::SecurityProtocol
Команда даст вам представление.