45 lines
1.6 KiB
PowerShell
45 lines
1.6 KiB
PowerShell
$ErrorActionPreference = 'Stop'
|
|
|
|
Write-Host '[AZA] Step 15 - Caddy Reload (force recreate)'
|
|
|
|
$composeFile = Join-Path $PSScriptRoot 'docker-compose.yml'
|
|
if (-not (Test-Path $composeFile)) {
|
|
throw "Compose file not found: $composeFile"
|
|
}
|
|
|
|
# Ensure Docker engine is up
|
|
& (Join-Path $PSScriptRoot 'docker_ensure.ps1')
|
|
|
|
# Recreate caddy to apply updated Caddyfile/.env
|
|
Write-Host '[AZA] docker compose up -d --force-recreate caddy'
|
|
# NOTE: Windows PowerShell can raise NativeCommandError for docker stderr even on success.
|
|
# Use cmd.exe to avoid stderr being treated as a PowerShell error record.
|
|
$cmd = 'docker compose -f "' + $composeFile + '" up -d --force-recreate caddy'
|
|
$out = & cmd.exe /c ($cmd + ' 2>&1')
|
|
$code = $LASTEXITCODE
|
|
$out | Out-Host
|
|
if ($code -ne 0) { throw "[AZA] FAIL: docker compose recreate caddy failed (exit=$code)" }
|
|
|
|
# Status
|
|
Write-Host '[AZA] docker compose ps'
|
|
& docker compose -f $composeFile ps 2>&1 | Out-Host
|
|
|
|
# Optional local HTTP check (local dev uses host port 18080 -> container 80)
|
|
Write-Host '[AZA] Optional: test http://127.0.0.1:18080/health (via caddy)'
|
|
$ok = $false
|
|
for ($i = 0; $i -lt 8; $i++) {
|
|
try {
|
|
$r = Invoke-WebRequest -UseBasicParsing -Uri 'http://127.0.0.1:18080/health' -TimeoutSec 3
|
|
Write-Host ('[AZA] http://127.0.0.1:18080/health StatusCode=' + $r.StatusCode)
|
|
$ok = $true
|
|
break
|
|
} catch {
|
|
Start-Sleep -Seconds 2
|
|
}
|
|
}
|
|
if (-not $ok) {
|
|
$tnc = Test-NetConnection -ComputerName 127.0.0.1 -Port 18080 | Select-Object ComputerName,RemotePort,TcpTestSucceeded
|
|
Write-Host ('[AZA] WARN: http://127.0.0.1/health still failing. Port check: ' + ($tnc | Out-String).Trim())
|
|
}
|
|
|