Il existe un exemple ici de téléchargement d'un fichier zip à l'aide de PowerShell sur Nano, vous devrez peut-être le modifier un peu pour vos besoins;
Je crois que ces exemples de code PowerShell auxquels vous faites référence sont destinés à être exécutés sur la machine cliente, pas sur l'hôte docker Nano (il dit "Sur le système distant sur lequel vous travaillerez, téléchargez le client Docker. Invoke-WebRequest ...")
qbik
Je peux me tromper, mais j'ai supposé que @ encore-un autre utilisateur voulait l'utiliser à partir du client docker lors d'une génération.
mikebridge
2
C'est fou qu'un système d'exploitation de serveur conçu pour alimenter les charges de travail cloud ne dispose pas d'une méthode pratique intégrée pour une simple demande REST / Web: O
Quoi qu'il en soit, vous pouvez essayer ce script PowerShell wget.ps1 qui est une modification de celui de Microsoft. Copier-coller ici pour plus de commodité
<#.SYNOPSIS
Downloads a file
.DESCRIPTION
Downloads a file
.PARAMETER Url
URL to file/resource to download
.PARAMETER Filename
file to save it as locally
.EXAMPLE
C:\PS>.\wget.ps1 https://dist.nuget.org/win-x86-commandline/latest/nuget.exe
#>Param([Parameter(Position=0,mandatory=$true)][string]$Url,[string]$Filename ='')# Get filenameif(!$Filename){
$Filename =[System.IO.Path]::GetFileName($Url)}Write-Host"Download: $Url to $Filename"# Make absolute local pathif(![System.IO.Path]::IsPathRooted($Filename)){
$FilePath =Join-Path(Get-Item-Path".\" -Verbose).FullName $Filename
}
if (($Url -as [System.URI]).AbsoluteURI -ne $null)
{
# Download the bits
$handler = New-Object System.Net.Http.HttpClientHandler
$client = New-Object System.Net.Http.HttpClient($handler)
$client.Timeout = New-Object System.TimeSpan(0, 30, 0)
$cancelTokenSource = [System.Threading.CancellationTokenSource]::new()
$responseMsg = $client.GetAsync([System.Uri]::new($Url), $cancelTokenSource.Token)
$responseMsg.Wait()
if (!$responseMsg.IsCanceled)
{
$response = $responseMsg.Result
if ($response.IsSuccessStatusCode)
{
$downloadedFileStream = [System.IO.FileStream]::new($FilePath, [System.IO.FileMode]::Create, [System.IO.FileAccess]::Write)
$copyStreamOp = $response.Content.CopyToAsync($downloadedFileStream)
# TODO: Progress bar? Total size?
Write-Host "Downloading..."
$copyStreamOp.Wait()
$downloadedFileStream.Close()
if ($copyStreamOp.Exception -ne $null)
{
throw $copyStreamOp.Exception
}
}
}
}
else
{
throw "Cannot download from $Url"
}
Invoke-WebRequest
a été ajouté à nanoserver dans le cadre de la mise à jour cumulative du 26 septembre 2016 pour Windows Server 2016 .la source
Invoke-WebRequest ...
")C'est fou qu'un système d'exploitation de serveur conçu pour alimenter les charges de travail cloud ne dispose pas d'une méthode pratique intégrée pour une simple demande REST / Web: O
Quoi qu'il en soit, vous pouvez essayer ce script PowerShell wget.ps1 qui est une modification de celui de Microsoft. Copier-coller ici pour plus de commodité
la source