acr-docker-credential-helper icon indicating copy to clipboard operation
acr-docker-credential-helper copied to clipboard

Error installing due to syntax error

Open maburlik opened this issue 4 years ago • 4 comments

Output:

PS C:\Users\maburlik\Downloads> iex ([System.Text.Encoding]::UTF8.GetString((Invoke-WebRequest -Uri https://aka.ms/acr/installaad/win).Content))                                                                                                ACR Credential Helper currently does not support Windows Credential Manager because Windows Credential Manager only support saving tokens with less than 2.5KB blob size.                                                                       1. A json file will be used to store all your credentials.                                                              2. You will have to re-login to any existing Docker registry after the installation.                                    Continue? [Y/n]: y


StatusCode        : 200
StatusDescription : OK
Content           : {80, 75, 3, 4...}
RawContent        : HTTP/1.1 200 OK
                    Content-MD5: N9ZEaAmDPB0IAymL+wTz2A==
                    x-ms-request-id: 6b3c521a-001e-0115-7c5a-8caa57000000
                    x-ms-version: 2014-02-14
                    x-ms-lease-status: unlocked
                    x-ms-lease-state: available
                    x-ms-...
Headers           : {[Content-MD5, N9ZEaAmDPB0IAymL+wTz2A==], [x-ms-request-id, 6b3c521a-001e-0115-7c5a-8caa57000000],
                    [x-ms-version, 2014-02-14], [x-ms-lease-status, unlocked]...}
RawContentLength  : 4161209


PSPath            : Microsoft.PowerShell.Core\FileSystem::C:\Users\maburlik\Downloads\deleteme
PSParentPath      : Microsoft.PowerShell.Core\FileSystem::C:\Users\maburlik\Downloads
PSChildName       : deleteme
PSDrive           : C
PSProvider        : Microsoft.PowerShell.Core\FileSystem
PSIsContainer     : True
Name              : deleteme
FullName          : C:\Users\maburlik\Downloads\deleteme
Parent            : Downloads
Exists            : True                                                                                                Root              : C:\                                                                                                 Extension         :                                                                                                     CreationTime      : 9/16/2020 11:50:15 AM                                                                               CreationTimeUtc   : 9/16/2020 6:50:15 PM
LastAccessTime    : 9/16/2020 11:50:15 AM
LastAccessTimeUtc : 9/16/2020 6:50:15 PM
LastWriteTime     : 9/16/2020 11:50:15 AM
LastWriteTimeUtc  : 9/16/2020 6:50:15 PM
Attributes        : Directory
Mode              : d-----
BaseName          : deleteme
Target            : {}
LinkType          :

Move-Item : Cannot convert 'System.Object[]' to the type 'System.String' required by parameter 'Destination'.
Specified method is not supported.                                                                                      At line:60 char:76                                                                                                      + ... -Path $tempdir "docker-credential-acr-windows*.exe") $installLocation                                             +                                                          ~~~~~~~~~~~~~~~~                                                 + CategoryInfo          : InvalidArgument: (:) [Move-Item], ParameterBindingException
    + FullyQualifiedErrorId : CannotConvertArgument,Microsoft.PowerShell.Commands.MoveItemCommand

Runing ACR docker config editor...
Docker config C:\Users\maburlik\.docker\config.json will be edited

The reason this is failing is because $(where.exe docker) returns

C:\ProgramData\DockerDesktop\version-bin\docker
C:\ProgramData\DockerDesktop\version-bin\docker.exe

maburlik avatar Sep 16 '20 19:09 maburlik

I was able to work around this locally by updating line 60 from

Move-Item -Force (Join-Path $tempdir "docker-credential-acr-windows*.exe") $installLocation

to

Move-Item -Force (Join-Path $tempdir "docker-credential-acr-windows*.exe") $installLocation[0]

maburlik avatar Sep 16 '20 19:09 maburlik

/cc @sajayantony, @iamjasonp for visibility.

DavidObando avatar Sep 16 '20 19:09 DavidObando

/cc: @yugangw-msft

iamjasonp avatar Sep 16 '20 19:09 iamjasonp

I was able to work around this issue by temporarily renaming C:\ProgramData\DockerDesktop\version-bin\docker to _docker, running the script, and then renaming it back.

GeorgeTsiokos avatar Apr 06 '21 18:04 GeorgeTsiokos