44 lines
1.3 KiB
PowerShell
44 lines
1.3 KiB
PowerShell
function Start-DockerDesktop {
|
|
[CmdletBinding()]
|
|
param(
|
|
[Parameter()]
|
|
[string]$Path = "$env:ProgramFiles\Docker\Docker\Docker Desktop.exe",
|
|
|
|
[Parameter()]
|
|
[int]$TimeoutSeconds = 120
|
|
)
|
|
|
|
if (-not (Test-Path $Path)) {
|
|
Write-Error "Docker Desktop est introuvable au chemin : $Path"
|
|
return $false
|
|
}
|
|
|
|
$dockerProcess = Get-Process -Name "Docker Desktop" -ErrorAction SilentlyContinue
|
|
if ($null -eq $dockerProcess) {
|
|
Write-Host "Démarrage de Docker Desktop..." -ForegroundColor Cyan
|
|
Start-Process -FilePath $Path
|
|
} else {
|
|
Write-Host "Le processus Docker Desktop est déjà en cours." -ForegroundColor Yellow
|
|
}
|
|
|
|
Write-Host "En attente du moteur Docker..." -NoNewline
|
|
$elapsed = 0
|
|
$interval = 2
|
|
|
|
while ($elapsed -lt $TimeoutSeconds) {
|
|
cmd.exe /c "docker info >nul 2>&1"
|
|
if ($LASTEXITCODE -eq 0) {
|
|
Write-Host " Prêt !" -ForegroundColor Green
|
|
docker --version
|
|
return $true
|
|
}
|
|
|
|
Start-Sleep -Seconds $interval
|
|
Write-Host "." -NoNewline
|
|
$elapsed += $interval
|
|
}
|
|
|
|
Write-Host ""
|
|
Write-Warning "Le moteur Docker n'a pas répondu dans le délai imparti ($TimeoutSeconds s)."
|
|
return $false
|
|
} |