diff --git a/windows-server-container-tools/Install-ContainerHost/Install-ContainerHost.ps1 b/windows-server-container-tools/Install-ContainerHost/Install-ContainerHost.ps1 index 91cbf50e2..90096b019 100644 --- a/windows-server-container-tools/Install-ContainerHost/Install-ContainerHost.ps1 +++ b/windows-server-container-tools/Install-ContainerHost/Install-ContainerHost.ps1 @@ -443,7 +443,7 @@ Install-ContainerHost { $imageName = "WindowsServerCore" - if (Test-Nano) + if ($HyperV -or Test-Nano) { $imageName = "NanoServer" } @@ -535,24 +535,7 @@ Install-ContainerHost } Write-Output "Container base image install complete. Querying container images..." - $newBaseImages += Get-InstalledContainerImage $imageName - - while ($newBaseImages.Count -eq 0) - { - # - # Sleeping to ensure VMMS has restarted to workaround TP3 issue - # - Write-Output "Waiting for VMMS to return image at ($(get-date))..." - - Start-Sleep -Sec 2 - - $newBaseImages += Get-InstalledContainerImage $imageName - } - - if ($newBaseImages.Count -eq 0) - { - throw "No Container OS image installed!" - } + $newBaseImages += Wait-InstalledContainerImage $imageName } # @@ -647,7 +630,7 @@ Install-ContainerHost } Write-Output "Configuring NSSM for $global:DockerServiceName service..." - Start-Process -Wait "nssm" -ArgumentList "install $global:DockerServiceName $($env:SystemRoot)\System32\cmd.exe /s /c $dockerDaemonScript" + Start-Process -Wait "nssm" -ArgumentList "install $global:DockerServiceName $($env:SystemRoot)\System32\cmd.exe /s /c $dockerDaemonScript < nul" Start-Process -Wait "nssm" -ArgumentList "set $global:DockerServiceName DisplayName Docker Daemon" Start-Process -Wait "nssm" -ArgumentList "set $global:DockerServiceName Description The Docker Daemon provides management capabilities of containers for docker clients" # Pipe output to daemon.log @@ -922,7 +905,11 @@ Test-Nano() { $EditionId = (Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion' -Name 'EditionID').EditionId - return (($EditionId -eq "NanoServer") -or ($EditionId -eq "ServerTuva")) + return (($EditionId -eq "ServerStandardNano ") -or + ($EditionId -eq "ServerDataCenterNano") -or + ($EditionId -eq "NanoServer") -or + ($EditionId -eq "ServerTuva")) + } @@ -1026,6 +1013,42 @@ Test-Docker() } +function +Wait-InstalledContainerImage +{ + [CmdletBinding()] + param( + [Parameter(Mandatory=$true)] + [string] + [ValidateNotNullOrEmpty()] + $BaseImageName + ) + + $newBaseImages = Get-InstalledContainerImage $BaseImageName + + while ($newBaseImages.Count -eq 0) + { + $timeElapsed = $(Get-Date) - $startTime + + if ($($timeElapsed).TotalMinutes -gt 5) + { + throw "Image $BaseImageName not found after 5 minutes" + } + + # + # Sleeping to ensure VMMS has restarted to workaround TP3 issue + # + Write-Output "Waiting for VMMS to return image at ($(get-date))..." + + Start-Sleep -Sec 2 + + $newBaseImages += Get-InstalledContainerImage $BaseImageName + } + + return $newBaseImages +} + + function Wait-Docker() {