Система не может найти файл при установке пакетов в образе Windows Docker - PullRequest
0 голосов
/ 08 апреля 2019

При создании образа Windows Docker я пытаюсь установить несколько пакетов с использованием chocolatey через powershell. Мой докер файл выглядит так:

FROM microsoft/windowsservercore:10.0.14393.1358

RUN mkdir C:\BuildAgent
WORKDIR C:/BuildAgent

RUN ["PowerShell", "Get-PackageProvider", "-Name chocolatey", "-Force", "-Debug"]
RUN ["PowerShell", "Install-Package", "azure-cli", "-Force", "-ProviderName", "Chocolatey"]
RUN ["PowerShell", "Install-Package", "microsoft-build-tools", "-Force", "-ProviderName", "chocolatey", "-Debug"]
RUN ["PowerShell", "Install-Package", "netfx-4.7.1-devpack", "-Force", "-ProviderName", "chocolatey"]

При сборке файла Docker, описанного выше, без отладки, оба пакета установки microsoft-build-tools и netfx-4.7.1-devpack завершаются с ошибкой:

Install-Package : The system cannot find the file specified
At line:1 char:1
+ Install-Package netfx-4.7.1-devpack -Force -ProviderName Chocolatey
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (False C:\Users\...4-AllOS-ENU.exe
   :String) [Install-Package], Exception
    + FullyQualifiedErrorId : Process Execution Failed,Microsoft.PowerShell.Pa
   ckageManagement.Cmdlets.InstallPackage

Установка для azure-cli работает без проблем. При работе с включенной отладкой видно что-то похожее на:

DEBUG: 00:00:00.0000005 Trying provider assembly: C:\Program
Files\WindowsPowerShell\Modules\PackageManagement\1.0.0.1\Microsoft.PackageMana
gement.MetaProvider.PowerShell.dll
DEBUG: 00:00:00.0057686 Trying provider assembly: C:\Program
Files\WindowsPowerShell\Modules\PackageManagement\1.0.0.1\Microsoft.PackageMana
gement.ArchiverProviders.dll
DEBUG: 00:00:00.0203506 Trying provider assembly: C:\Program
Files\WindowsPowerShell\Modules\PackageManagement\1.0.0.1\Microsoft.PackageMana
gement.CoreProviders.dll
DEBUG: 00:00:00.0267630 Trying provider assembly: C:\Program
Files\WindowsPowerShell\Modules\PackageManagement\1.0.0.1\Microsoft.PackageMana
gement.MsuProvider.dll
DEBUG: 00:00:00.0407110 Trying provider assembly: C:\Program
Files\WindowsPowerShell\Modules\PackageManagement\1.0.0.1\Microsoft.PackageMana
gement.MsiProvider.dll
DEBUG: 00:00:00.0413017 Attempting loading of assembly: C:\Program
Files\WindowsPowerShell\Modules\PackageManagement\1.0.0.1\Microsoft.PackageMana
gement.ArchiverProviders.dll
DEBUG: 00:00:00.0427663 Attempting loading of assembly: C:\Program
Files\WindowsPowerShell\Modules\PackageManagement\1.0.0.1\Microsoft.PackageMana
gement.MetaProvider.PowerShell.dll
DEBUG: 00:00:00.0428154 Attempting loading of assembly: C:\Program
Files\WindowsPowerShell\Modules\PackageManagement\1.0.0.1\Microsoft.PackageMana
gement.MsiProvider.dll
DEBUG: 00:00:00.0447097 Acquiring providers for assemblyC:\Program
Files\WindowsPowerShell\Modules\PackageManagement\1.0.0.1\Microsoft.PackageMana
gement.ArchiverProviders.dll
DEBUG: 00:00:00.0451141 Acquiring providers for assemblyC:\Program
Files\WindowsPowerShell\Modules\PackageManagement\1.0.0.1\Microsoft.PackageMana
gement.MsiProvider.dll
DEBUG: 00:00:00.0473429 Acquiring providers for assemblyC:\Program
Files\WindowsPowerShell\Modules\PackageManagement\1.0.0.1\Microsoft.PackageMana
gement.MetaProvider.PowerShell.dll
DEBUG: 00:00:00.0477069 Attempting loading of assembly: C:\Program
Files\WindowsPowerShell\Modules\PackageManagement\1.0.0.1\Microsoft.PackageMana
gement.CoreProviders.dll
DEBUG: 00:00:00.0496295 Acquiring providers for assemblyC:\Program
Files\WindowsPowerShell\Modules\PackageManagement\1.0.0.1\Microsoft.PackageMana
gement.CoreProviders.dll
DEBUG: 00:00:00.0560442 Attempting loading of assembly: C:\Program
Files\WindowsPowerShell\Modules\PackageManagement\1.0.0.1\Microsoft.PackageMana
gement.MsuProvider.dll
DEBUG: 00:00:00.0582941 Acquiring providers for assemblyC:\Program
Files\WindowsPowerShell\Modules\PackageManagement\1.0.0.1\Microsoft.PackageMana
gement.MsuProvider.dll
DEBUG: 00:00:00.0590760 Trying provider assembly: C:\Program
Files\PackageManagement\ProviderAssemblies\chocolatey\2.8.5.130\ChocolateyProto
type.exe
DEBUG: 00:00:00.1417391 Attempting loading of assembly: C:\Program
Files\PackageManagement\ProviderAssemblies\chocolatey\2.8.5.130\ChocolateyProto
type.exe
DEBUG: 00:00:00.1448602 Acquiring providers for assemblyC:\Program
Files\PackageManagement\ProviderAssemblies\chocolatey\2.8.5.130\ChocolateyProto
type.exe
DEBUG: 00:00:00.1644548 Registering providers via metaproviders for assembly
Microsoft.PackageManagement.MetaProvider.PowerShell.Internal.PowerShellMetaProv
ider
DEBUG: 00:00:00.2777499 Initializing provider 'msi'
DEBUG: 00:00:00.2780595 Initializing provider 'Programs'
DEBUG: 00:00:00.2817664 Initializing provider 'WebDownloader'
DEBUG: 00:00:00.2852554 Initializing provider 'msu'
DEBUG: 00:00:00.3132464 Initializing provider 'Bootstrap'
DEBUG: 00:00:00.3323597 Calling 'Programs::InitializeProvider'
DEBUG: 00:00:00.3324867 Provider 'Programs' Initialized
DEBUG: 00:00:00.3325155 Using Package Provider Programs
DEBUG: 00:00:00.3345954 Provider 'WebDownloader' Initialized
DEBUG: 00:00:00.3346222 Using Downloader Provider WebDownloader
DEBUG: 00:00:00.3356485 Calling 'msu::InitializeProvider'
DEBUG: 00:00:00.3384192 Provider 'msu' Initialized
DEBUG: 00:00:00.3384398 Using Package Provider msu
DEBUG: 00:00:00.3405003 Calling 'msi::InitializeProvider'
DEBUG: 00:00:00.3405292 Provider 'msi' Initialized
DEBUG: 00:00:00.3405441 Using Package Provider msi
DEBUG: 00:00:00.3415280 Initializing provider 'zipfile'
DEBUG: 00:00:00.3553916 Provider 'zipfile' Initialized
DEBUG: 00:00:00.3554176 Using Archiver Provider zipfile
DEBUG: 00:00:00.3602182 Calling 'WebDownloader::GetFeatures'
DEBUG: 00:00:00.3659492 Initialize Bootstrapper
DEBUG: 00:00:00.3697346 Calling 'Programs::GetFeatures'
DEBUG: 00:00:00.3699934 The provider 'Programs' is imported
DEBUG: 00:00:00.3769973 Calling 'msu::GetFeatures'
DEBUG: 00:00:00.3789758 The provider 'msu' is imported
DEBUG: 00:00:00.3792166 SUCCESS provider assembly: C:\Program
Files\WindowsPowerShell\Modules\PackageManagement\1.0.0.1\Microsoft.PackageMana
gement.MsuProvider.dll
DEBUG: 00:00:00.3902326 Initializing provider 'Chocolatey'
DEBUG: 00:00:00.4059474 Calling 'zipfile::GetFeatures'
DEBUG: 00:00:00.4063136 SUCCESS provider assembly: C:\Program
Files\WindowsPowerShell\Modules\PackageManagement\1.0.0.1\Microsoft.PackageMana
gement.ArchiverProviders.dll
DEBUG: 00:00:00.4137485 Provider 'Bootstrap' Initialized
DEBUG: 00:00:00.4137803 Using Package Provider Bootstrap
DEBUG: 00:00:00.4181811 Calling 'Chocolatey::InitializeProvider'
DEBUG: 00:00:00.4183344 Provider 'Chocolatey' Initialized
DEBUG: 00:00:00.4183626 Using Package Provider Chocolatey
DEBUG: 00:00:00.4220211 Calling 'msi::GetFeatures'
DEBUG: 00:00:00.4222625 The provider 'msi' is imported
DEBUG: 00:00:00.4226974 SUCCESS provider assembly: C:\Program
Files\WindowsPowerShell\Modules\PackageManagement\1.0.0.1\Microsoft.PackageMana
gement.MsiProvider.dll
DEBUG: 00:00:00.4229336 Calling 'Bootstrap::GetFeatures'
DEBUG: 00:00:00.4241404 The provider 'Bootstrap' is imported
DEBUG: 00:00:00.4244228 SUCCESS provider assembly: C:\Program
Files\WindowsPowerShell\Modules\PackageManagement\1.0.0.1\Microsoft.PackageMana
gement.CoreProviders.dll
DEBUG: 00:00:00.4330357 Calling 'Chocolatey::GetFeatures'
DEBUG: 00:00:00.4363223 The provider 'Chocolatey' is imported
DEBUG: 00:00:00.4385417 SUCCESS provider assembly: C:\Program
Files\PackageManagement\ProviderAssemblies\chocolatey\2.8.5.130\ChocolateyProto
type.exe
DEBUG: 00:00:00.4832077 Calling 'WebDownloader::DownloadFile'
'https://go.microsoft.com/fwlink/?LinkID=627338&clcid=0x409','C:\Users\Containe
rAdministrator\AppData\Local\Temp\Microsoft.PackageManagement\jiwwqzto.0qq','40
000','False'
DEBUG: 00:00:00.8183749 Trying to register metaprovider
DEBUG: 00:00:00.8273068 Initializing PowerShell MetaProvider
DEBUG: 00:00:01.1038875 Attempting to load PowerShell Provider Module
[C:\Program
Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1\PSModule.psm1]
DEBUG: 00:00:01.9571934 Loaded PowerShell package provider: '[C:\Program
Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1\PSModule.psm1]'.
DEBUG: 00:00:02.0404543 Loaded PowerShell Provider: PowerShellGet
DEBUG: 00:00:02.0421151 Initializing provider 'PowerShellGet'
DEBUG: 00:00:02.0485150 Calling New() : MethodName = 'InitializeProvider'
DEBUG: 00:00:02.0485557 Force: True
DEBUG: 00:00:02.0485699 Debug: True
DEBUG: 00:00:02.0485783 Name: microsoft-build-tools
DEBUG: 00:00:02.0729562 INVOKING PowerShell Fn Initialize-Provider with args
that has length 0
DEBUG: 00:00:02.1150115 In PowerShellGet Provider - 'Initialize-Provider'.
DEBUG: 00:00:02.1156922 PowerShell Script 'PSModule' Function
'Initialize-Provider' returns null.
DEBUG: 00:00:02.1164279 Done calling powershell «Initialize-Provider»
«PSModule»
DEBUG: 00:00:02.1165152 Provider 'PowerShellGet' Initialized
DEBUG: 00:00:02.1165421 Using Package Provider PowerShellGet
DEBUG: 00:00:02.1236869 Calling New() : MethodName = 'GetFeatures'
DEBUG: 00:00:02.1237203 Force: True
DEBUG: 00:00:02.1237378 Debug: True
DEBUG: 00:00:02.1237543 Name: microsoft-build-tools
DEBUG: 00:00:02.1245696 INVOKING PowerShell Fn Get-Feature with args  that has
length 0
DEBUG: 00:00:02.1374390 In PowerShellGet Provider - 'Get-Feature'.
DEBUG: 00:00:02.1531388 Done calling powershell «Get-Feature» «PSModule»
DEBUG: 00:00:02.1533000 The provider 'PowerShellGet' is imported
DEBUG: 00:00:02.1542889 SUCCESS provider assembly: C:\Program
Files\WindowsPowerShell\Modules\PackageManagement\1.0.0.1\Microsoft.PackageMana
gement.MetaProvider.PowerShell.dll
DEBUG: 00:00:02.6828933 Calling 'Chocolatey::GetDynamicOptions' 'Provider'
DEBUG: 00:00:02.6884580 Calling 'Chocolatey::GetDynamicOptions' 'Source'
DEBUG: 00:00:02.6986031 Calling 'Chocolatey::GetDynamicOptions' 'Package'
DEBUG: 00:00:02.7039779 Calling 'Chocolatey::GetDynamicOptions' 'Install'
DEBUG: 00:00:03.1083907 Calling SearchForPackages. Name='microsoft-build-tools'
VERBOSE: Using the provider 'Chocolatey' for searching packages.
DEBUG: 00:00:03.1182322 PackageProvider::FindPackage with name
microsoft-build-tools
DEBUG: 00:00:03.1190477 Calling SearchForPackages After Select 1
DEBUG: 00:00:03.1300578 Calling 'Chocolatey::FindPackage'
'microsoft-build-tools','','','','0'
DEBUG: 00:00:03.1453056 Iterating
DEBUG: 00:00:04.2105612 Yielding
DEBUG: 00:00:04.2315628 Done Iterating
DEBUG: 00:00:04.3010052 Calling 'Chocolatey::GetInstalledPackages'
'microsoft-build-tools','15.0.26320.2','',''
Removing intermediate container 3ea8c961ed27

И это просто останавливается там. Когда я пытаюсь выполнить ту же команду с отладкой на моем локальном компьютере, я вижу, что она идет дальше, чем команда 'chocoloatey :: getinstalledpackages', и поэтому я предполагаю, что именно здесь появляется ошибка «невозможно найти файл». До сих пор я пробовал несколько вариантов использования '-source', 'set-package' и '-provider-name', как было показано выше, но безуспешно. Любая помощь с этим будет принята с благодарностью.

...