You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.7 KiB
47 lines
1.7 KiB
# Diagnose Docker Desktop engine issues
|
|
# Usage: npm run dev:diagnose-docker
|
|
|
|
$ErrorActionPreference = "Continue"
|
|
. (Join-Path $PSScriptRoot "lib.ps1")
|
|
|
|
Write-Host "=== Docker diagnose ===" -ForegroundColor Cyan
|
|
|
|
$drive = (Get-Item $script:DevConfig.ProjectRoot).PSDrive.Name
|
|
$freeGb = [math]::Round((Get-PSDrive $drive).Free / 1GB, 1)
|
|
Write-Host "Disk free on ${drive}: ${freeGb} GB"
|
|
if ($freeGb -lt 10) {
|
|
Write-Host "[WARN] Low disk space often causes Docker engine 500 / IPC timeout" -ForegroundColor Yellow
|
|
}
|
|
|
|
Write-Host ""
|
|
Write-Host "WSL distros:"
|
|
$distro = Get-DevWslDistro
|
|
if ($distro) {
|
|
Write-Host " dev distro: $distro"
|
|
} else {
|
|
Write-Host " [WARN] no Linux WSL distro (only docker-desktop?). Run: wsl --install -d Ubuntu-22.04" -ForegroundColor Yellow
|
|
}
|
|
wsl -l -v
|
|
|
|
Write-Host ""
|
|
Write-Host "Docker engine status: $(Get-DockerEngineStatus)"
|
|
$info = Invoke-DockerInfoSafe
|
|
if ($info.Output) {
|
|
Write-Host $info.Output.Substring(0, [Math]::Min(800, $info.Output.Length))
|
|
}
|
|
|
|
Write-Host ""
|
|
Write-Host "Recommendation:" -ForegroundColor Cyan
|
|
Write-Host " Docker Desktop IPC/WSL engine stuck is a known Windows issue."
|
|
Write-Host " Do NOT use DockerCli -SwitchDaemon (makes it worse)."
|
|
Write-Host ""
|
|
Write-Host " Permanent dev path (recommended):"
|
|
Write-Host " npm run dev:infra:setup # mysql+redis in WSL, no Docker Desktop"
|
|
Write-Host " npm run dev:start # DEV_INFRA_MODE=native"
|
|
Write-Host ""
|
|
Write-Host " If you must fix Docker Desktop:"
|
|
Write-Host " 1. wsl --shutdown (admin)"
|
|
Write-Host " 2. Quit Docker Desktop, restart PC"
|
|
Write-Host " 3. Ensure C: has 20GB+ free (compact docker-desktop-data vhdx)"
|
|
Write-Host " 4. Update Docker Desktop + WSL: wsl --update"
|