【问题标题】:Not able to install packages using chcolatey in docker container无法在 docker 容器中使用 chcolatey 安装软件包
【发布时间】:2020-02-22 23:41:03
【问题描述】:

我正在构建一个安装了以下软件的 Windows 容器

  1. 记事本++
  2. MariaDB
  3. HeidiSQL
  4. .NET Framework 2.0 和 3.5

这是我创建的 docker 镜像。 https://hub.docker.com/repository/docker/mhhaji/winserver2016_base

我尝试了什么:

运行容器的步骤

docker run --name mycontainer mhhaji/winserver2016_base:v1 ping -t localhost

docker exec -it mycontainer powershell

一旦 powershell 运行, 我执行以下命令

Get-PackageProvider
#Chocolatey is not existing so I install chocolatey
Find-Package -Provider chocolatey
#Enter [Y] when prompted
#Install notepad++
Find-Package -Provider chocolatey -name notepad*

我收到以下错误

PS C:\> Find-Package -Provider chocolatey -name notepad* 
WARNING: NuGet: The request was aborted: Could not create SSL/TLS secure channel. 

PS C:\> Find-Package -Provider chocolatey -name mariadb 
Find-Package : No match was found for the specified search criteria and package name 'mariadb' as registered package sources. 
At line:1 char:1 
+ Find-Package -Provider chocolatey -name mariadb 
    + Categorylnfo : ObjectNotFound: (Microsoft.Power...ets.FindPackage:FindPac
    + FullyQualifiedErrorld : NoMatchFoundForCriteria,Microsoft.PowerShell.PackageManage 

PS C:\> Get-PackageSource 
Name          ProviderName    IsTrusted    Location   
chocolatey    Chocolatey      False        http://chocolatey.org/api/v
PSGallery     PowerShellGet   False        https://www.powershellgalle   


PS C:\> Get-PackageParameters
Get-PackageParameters : The term 'Get-PackageParameters' is not recognized as the name 
o program. Check the spelling of the name, or if a path was included, verify that the path 
At line:1 char:1 
+ Get-PackageParameters 
    + Categorylnfo : ObjectNotFound: (Get-PackageParameters:String) [], Command 
    + FullyQualifiedErrorld : CommandNotFoundException 

PS C:\> Get-PackageProvider 
Name           Version         DynamicOptions 
Chocolatey     2.8.5.130       SkipDependencies, ContinueOnFailure, 
ExcludeVersion,ForceX86, PackageSaveMode, FilterOnTag, Contains, 
AllowPrereleaseVersions, Conf  
msi            3.0.0.0         AdditionalArguments  
msu            3.0.0.0 
PowerShellGet  1.0.0.1         PackageManagementProvider, Type, Scope, AllowClobber,SkipPublisherCheck, InstallUpdate, NoPathUpdate, Filter, Tag, Includes, DscRes
Programs       3.0.0.0         IncludeWindowsInstaller, IncludeSystemComponent

我能够下载巧克力,因此连接到外部端点似乎不是问题。

更新: 好像我的图像中没有安装nuget。正在寻找解决方案,但找不到。

【问题讨论】:

    标签: windows powershell docker chocolatey cmdlet


    【解决方案1】:

    确保您的系统能够支持 TLS 1.2,因为这是 Chocolatey 运行所必需的

    PS> [Enum]::GetNames([Net.SecurityProtocolType]) -contains 'Tls12'

    为您的系统启用 TLS 1.2

    PS> [Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12

    最后直接从源码安装chocolatey

    PS> iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'));

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-18
      • 2020-07-26
      • 1970-01-01
      • 2017-01-22
      • 1970-01-01
      • 1970-01-01
      • 2022-09-23
      相关资源
      最近更新 更多