mirror of
https://github.com/actions/runner-images-sangeeth.git
synced 2025-12-20 06:29:50 +00:00
[Windows] Implement new directories hierarchy (#8616)
This commit is contained in:
committed by
GitHub
parent
84a7deae24
commit
d1f2c9a3be
56
images/windows/scripts/build/Install-Docker.ps1
Normal file
56
images/windows/scripts/build/Install-Docker.ps1
Normal file
@@ -0,0 +1,56 @@
|
||||
################################################################################
|
||||
## File: Install-Docker.ps1
|
||||
## Desc: Install Docker.
|
||||
## Must be an independent step because it requires a restart before we
|
||||
## can continue.
|
||||
################################################################################
|
||||
|
||||
Write-Host "Get latest Moby release"
|
||||
$mobyLatestReleaseVersion = (Invoke-RestMethod -Uri "https://api.github.com/repos/moby/moby/releases/latest").tag_name.Trim("v")
|
||||
$dockerceUrl = "https://download.docker.com/win/static/stable/x86_64/"
|
||||
$dockerceBinaries = Invoke-WebRequest -Uri $dockerceUrl -UseBasicParsing
|
||||
|
||||
Write-Host "Check Moby version $mobyLatestReleaseVersion"
|
||||
$mobyRelease = $dockerceBinaries.Links.href -match "${mobyLatestReleaseVersion}\.zip" | Select-Object -Last 1
|
||||
if (-not $mobyRelease) {
|
||||
Write-Host "Release not found for $mobyLatestRelease version"
|
||||
$versions = [regex]::Matches($dockerceBinaries.Links.href, "docker-(\d+\.\d+\.\d+)\.zip") | Sort-Object { [version]$_.Groups[1].Value }
|
||||
$mobyRelease = $versions | Select-Object -ExpandProperty Value -Last 1
|
||||
Write-Host "Found $mobyRelease"
|
||||
}
|
||||
$mobyReleaseUrl = $dockerceUrl + $mobyRelease
|
||||
|
||||
Write-Host "Install Moby $mobyRelease..."
|
||||
$mobyArchivePath = Start-DownloadWithRetry -Url $mobyReleaseUrl -Name $mobyRelease
|
||||
Expand-Archive -Path $mobyArchivePath -DestinationPath $env:TEMP
|
||||
$dockerPath = "$env:TEMP\docker\docker.exe"
|
||||
$dockerdPath = "$env:TEMP\docker\dockerd.exe"
|
||||
|
||||
Write-Host "Install Docker CE"
|
||||
$instScriptUrl = "https://raw.githubusercontent.com/microsoft/Windows-Containers/Main/helpful_tools/Install-DockerCE/install-docker-ce.ps1"
|
||||
$instScriptPath = Start-DownloadWithRetry -Url $instScriptUrl -Name "install-docker-ce.ps1"
|
||||
& $instScriptPath -DockerPath $dockerPath -DockerDPath $dockerdPath
|
||||
if ($LastExitCode -ne 0) {
|
||||
Write-Host "Docker installation failed with exit code $LastExitCode"
|
||||
exit $exitCode
|
||||
}
|
||||
|
||||
# Fix AZ CLI DOCKER_COMMAND_ERROR
|
||||
# cli.azure.cli.command_modules.acr.custom: Could not run 'docker.exe' command.
|
||||
# https://github.com/Azure/azure-cli/issues/18766
|
||||
New-Item -ItemType SymbolicLink -Path "C:\Windows\SysWOW64\docker.exe" -Target "C:\Windows\System32\docker.exe"
|
||||
|
||||
Write-Host "Download docker images"
|
||||
$dockerImages = (Get-ToolsetContent).docker.images
|
||||
foreach ($dockerImage in $dockerImages) {
|
||||
Write-Host "Pulling docker image $dockerImage ..."
|
||||
docker pull $dockerImage
|
||||
|
||||
if (!$?) {
|
||||
Write-Host "Docker pull failed with a non-zero exit code"
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
|
||||
Invoke-PesterTests -TestFile "Docker" -TestName "Docker"
|
||||
Invoke-PesterTests -TestFile "Docker" -TestName "DockerImages"
|
||||
Reference in New Issue
Block a user