Я пытаюсь собрать контейнер Windows Docker, который может запускать сборки .NET.Учитывая зависимости, мне нужен лучший способ сделать это, казалось, чтобы использовать Chocolatey.Однако на этапе установки для Chocolatey у меня истекает время загрузки при попытке запустить команду
Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
Полная ошибка приведена ниже.
Exception calling "DownloadString" with "1" argument(s): "The operation has
timed out"
At C:\install.ps1:3 char:51
+ ... ess -Force; iex ((New-Object System.Net.WebClient).DownloadString('ht ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], ParentContainsErrorRecordE
xception
+ FullyQualifiedErrorId : WebException
Это кажется странным по ряду причин.
- Я успешно построил этот образ Docker на машине, которую я свернул вручную, но ошибка постоянно происходит на нашей подготовленной машине для сборки.
- Я могу RDP на машину и загрузитьСценарий вне контекста контейнера Docker без проблем.
- Я могу без проблем пропинговать chocolatey.org в контейнере Docker.
- Я могу загружать содержимое других сайтов из контейнера Docker.(т. е. google.com или nuget.org).
- Я полностью уничтожил этот сборочный компьютер и подготовил новый (через BOSH).
Вывод: кажется, что некоторыепроблема с сетью, связанная с Docker, которая не препятствует подключению к серверам на chocolatey.org, но тем не менее мешает чтению содержимогоf URL-адреса оттуда.
Однако у меня нет инструментов для устранения неполадок, и любые идеи будут весьма признательны.
Полный файл Docker
FROM microsoft/windowsservercore:1709
COPY install.ps1 /install.ps1
RUN powershell /install.ps1
ENTRYPOINT powershell
Полный install.ps1
$ErrorActionPreference = "Stop"
Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
choco install 7zip -y
choco install visualstudio2017professional -y
choco install visualstudio2017-workload-manageddesktop --includeOptional --pre -y
choco install visualstudio2017-workload-universal --includeOptional --pre -y
choco install nuget.commandline