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 }