Set*_*son 6 chocolatey docker docker-for-windows
我正在尝试组合一个可以运行 .NET 构建的 Windows Docker 容器。鉴于我需要的依赖项,最好的方法似乎是使用 Chocolatey。但是,在 Chocolatey 的安装步骤中,我在尝试运行命令时遇到下载超时
Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
Run Code Online (Sandbox Code Playgroud)
完整的错误如下。
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
Run Code Online (Sandbox Code Playgroud)
由于多种原因,这似乎很奇怪。
结论:似乎存在某种与 Docker 相关的网络问题,它不会阻止连接到 Chocolatey.org 上的服务器,但仍然阻止从那里读取 URL 的内容。
但是,我没有用于故障排除的工具,任何想法将不胜感激。
完整的 Docker 文件
FROM microsoft/windowsservercore:1709
COPY install.ps1 /install.ps1
RUN powershell /install.ps1
ENTRYPOINT powershell
Run Code Online (Sandbox Code Playgroud)
完整安装.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
Run Code Online (Sandbox Code Playgroud)
小智 0
解决方案 如果您有以下情况:
PowerShell v3+ .NET Framework 4.5 您只需运行以下命令(而不仅仅是一行代码)即可安装 Chocolatey:
$securityProtocolSettingsOriginal = [System.Net.ServicePointManager]::SecurityProtocol
try { # 设置 TLS 1.2 (3072),然后设置 TLS 1.1 (768),然后设置 TLS 1.0 (192),最后设置 SSL 3.0 (48) # 使用整数,因为 TLS 1.2 和 TLS 1.1 的枚举值不会存在于 . NET 4.0,即使如果安装了 .NET 4.5+,它们也是可寻址的(.NET 4.5 是就地升级)。[System.Net.ServicePointManager]::SecurityProtocol = 3072 -bor 768 -bor 192 -bor 48 } catch { Write-Warning '由于安装了旧的 .NET Framework,无法将 PowerShell 设置为使用 TLS 1.2 和 TLS 1.1。如果您看到底层连接关闭或信任错误,您可能需要执行以下一项或多项操作:(1) 升级到 .NET Framework 4.5 和 PowerShell v3,(2) 指定内部 Chocolatey 包位置(事先设置 $env:chocolateyDownloadUrl在内部安装或托管软件包),(3) 使用下载 + PowerShell 方法安装。请参阅https://chocolatey.org/install了解所有安装选项。}
iex ((New-Object System.Net.WebClient).DownloadString(' https://chocolatey.org/install.ps1 '))
[System.Net.ServicePointManager]::SecurityProtocol = $securityProtocolSettingsOriginal
| 归档时间: |
|
| 查看次数: |
1008 次 |
| 最近记录: |