microsoft / navcontainerhelper

Official Microsoft repository for BcContainerHelper, a PowerShell module, which makes it easier to work with Business Central Containers on Docker.
MIT License
383 stars 247 forks source link

New-BcContainer runs into error: "DockerDo : Error response from daemon: Get "https://mcr.microsoft.com/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)" #3597

Closed SebaChri closed 2 months ago

SebaChri commented 2 months ago

Describe the issue

Currently creating a container runs into an error:

An error occurred while creating the container:
DockerDo : Error response from daemon: Get "https://mcr.microsoft.com/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
ExitCode: 1
Commandline: docker pull  mcr.microsoft.com/businesscentral:ltsc2019
In C:\Program Files\WindowsPowerShell\Modules\BcContainerHelper\6.0.19\ContainerHandling\New-NavContainer.ps1:799 car:13
+             DockerDo -command pull -imageName $bestImageName | Out-Nu ...
+             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Write-Error], WriteErrorException
    + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,DockerDo

Scripts used to create container and cause the issue

$containerName = 'BC24-IT-CU1'
$version = '24.1'
$Country = 'it'
$LicenseFile = 'C:\Users\scosta\OneDrive - EOS S.p.A\Dati\DockerDesktop\EOSBCCURRENT4DEV.bclicense'

$Password = ConvertTo-SecureString -AsPlainText -Force 'Password'
$credential = New-Object pscredential -ArgumentList ('admin', $Password)

$artifactUrl = Get-BCArtifactUrl -country $Country.ToLower() -type onprem -version $version -select Latest

$parameters = @{
    accept_eula = $true
    accept_outdated = $true
    alwaysPull = $true
    updateHosts = $true
    assignPremiumPlan = $true
    doNotExportObjectsToText = $true
    artifactUrl = $artifactUrl
    auth = 'NavUserPassword'
    containerName = $containerName
    licenseFile = $LicenseFile
    dns = '8.8.8.8'
    shortcut = 'None'
    Credential = $credential
}

$Test = @{
    includeTestLibrariesOnly = $true
    includeTestToolkit = $true
}
$parameters += $Test

New-BCContainer @parameters

iex ". { $(irm https://raw.githubusercontent.com/EOS-Solutions/Scripts/master/BARE/install-public.ps1 -Headers @{"Cache-Control" = "no-cache"}) }"

Docker Version

PS C:\windows\system32> docker version
Client:
 Version:           23.0.3
 API version:       1.42
 Go version:        go1.19.7
 Git commit:        3e7cbfd
 Built:             Tue Apr  4 22:05:02 2023
 OS/Arch:           windows/amd64
 Context:           default

Server: Docker Desktop 4.19.0 (106363)
 Engine:
  Version:          23.0.5
  API version:      1.42 (minimum version 1.24)
  Go version:       go1.19.8
  Git commit:       94d3ad6
  Built:            Wed Apr 26 16:17:54 2023
  OS/Arch:          windows/amd64
  Experimental:     false

BcContainerHelper Version

Version    Name                                Repository           Description
-------    ----                                ----------           -----------
6.0.19     BcContainerHelper                   PSGallery            PowerShell module, which makes it easier to work...

Full output of scripts

$containerName = 'BC24-IT-CU1'
$version = '24.1'
$Country = 'it'
$LicenseFile = 'C:\Users\scosta\OneDrive - EOS S.p.A\Dati\DockerDesktop\EOSBCCURRENT4DEV.bclicense'

$Password = ConvertTo-SecureString -AsPlainText -Force 'Password123!'
$credential = New-Object pscredential -ArgumentList ('admin', $Password)

$artifactUrl = Get-BCArtifactUrl -country $Country.ToLower() -type onprem -version $version -select Latest

$parameters = @{
    accept_eula = $true
    accept_outdated = $true
    alwaysPull = $true
    updateHosts = $true
    assignPremiumPlan = $true
    doNotExportObjectsToText = $true
    artifactUrl = $artifactUrl
    auth = 'NavUserPassword'
    containerName = $containerName
    licenseFile = $LicenseFile
    dns = '8.8.8.8'
    shortcut = 'None'
    Credential = $credential
}

$Test = @{
    includeTestLibrariesOnly = $true
    includeTestToolkit = $true
}
$parameters += $Test

New-BCContainer @parameters

iex ". { $(irm https://raw.githubusercontent.com/EOS-Solutions/Scripts/master/BARE/install-public.ps1 -Headers @{"Cache-Control" = "no-cache"}) }"

BcContainerHelper version 6.0.19
WinRM service is not running, will not try to use WinRM sessions
BC.HelperFunctions emits usage statistics telemetry to Microsoft
Running on Windows, PowerShell 5.1.19041.4648
BcContainerHelper is version 6.0.19
BcContainerHelper is running as administrator
HyperV is Enabled
Host is Microsoft Windows 10 Pro - 10.0.19045.4651
UsePsSession is True
UsePwshForBc24 is True
UseWinRmSession is never
UseSslForWinRmSession is True
Docker Client Version is 23.0.3
Docker Server Version is 23.0.5
Removing Desktop shortcuts
Fetching all docker images
Fetching all docker volumes
Pulling image mcr.microsoft.com/businesscentral:ltsc2019
New-BCContainer Telemetry Correlation Id: 8f91ce95-8630-41ad-9ba8-088abc1de569
DockerDo : Error response from daemon: Get "https://mcr.microsoft.com/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
ExitCode: 1
Commandline: docker pull  mcr.microsoft.com/businesscentral:ltsc2019
In C:\Program Files\WindowsPowerShell\Modules\BcContainerHelper\6.0.19\ContainerHandling\New-NavContainer.ps1:799 car:13
+             DockerDo -command pull -imageName $bestImageName | Out-Nu ...
+             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Write-Error], WriteErrorException
    + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,DockerDo

Additional context

freddydk commented 2 months ago

Looks very much like #3593 - which is caused by local network setup/issues.