Проблемы с загрузками в докере на основе 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 Команда даст вам представление.

Другие вопросы по тегам