zscripts-token-savers/zstart_docker.ps1
Kelly Michels 58c888aa56
chore(release): v1.0.0.0.18 (#58)
Build stamp catch-up for 4 merged PR(s) since v1.0.0.0.14:
  4230566 feat: two blank lines after every z-script run (#57)
  432f210 fix(zdeploy): the pre-zip line states the label verification will require (#56)
  fcbad44 feat(zdeploy): add the static deploy kind, and a test that keeps this repo sanitized (#55)
  7b32bfa fix(zdeploy): docker kind now ships config subdirectories (#54)
2026-08-25 15:51:58 -05:00

80 lines
2.8 KiB
PowerShell

# Evomedia.net Token Savers — https://github.com/evomedia-net/evo.zscripts
# Created by Kelly Michels · dev@evomedia.net
# Licensed under the MIT License. See LICENSE.
# Version: v1.0.0.0.18
# zstart_docker.ps1 — bring up a local docker compose stack from <scriptsRoot>\docker\.
#
# Usage:
# zstart_docker [-Build] [-Attached] [-Solo]
#
# -Build rebuild images before starting
# -Attached stream logs in the foreground (default is detached)
# -Solo use docker-compose.solo.yml (app only, no proxy)
#
param(
[switch]$Build,
[switch]$Attached,
[switch]$Solo
)
$ErrorActionPreference = "Stop"
Set-Location -Path $PSScriptRoot
. (Join-Path $PSScriptRoot "ZHelpers.ps1")
Start-ZTracking
Write-Host "=== zstart_docker ===" -ForegroundColor Cyan
$composeFileName = if ($Solo) { "docker-compose.solo.yml" } else { "docker-compose.yml" }
$dockerPing = Start-Process -FilePath "docker" -ArgumentList "info" -Wait -NoNewWindow -PassThru
if ($dockerPing.ExitCode -ne 0) {
Write-Host ""
Write-Host "ERROR: Docker Engine is not running or this shell cannot reach it." -ForegroundColor Red
Write-Host " (npipe dockerDesktopLinuxEngine missing usually means Docker Desktop is stopped or still starting.)" -ForegroundColor DarkYellow
Write-Host ""
Write-Host "Try:" -ForegroundColor Cyan
Write-Host " 1. Start Docker Desktop from the Start menu; wait until it shows Running." -ForegroundColor Gray
Write-Host " 2. If it hangs: open PowerShell as Administrator, run: wsl --shutdown" -ForegroundColor Gray
Write-Host " then start Docker Desktop again." -ForegroundColor Gray
Write-Host ""
Stop-ZTracking; exit 1
}
$composeFile = Join-Path $PSScriptRoot "docker\$composeFileName"
if (-not (Test-Path $composeFile)) {
Write-Host "ERROR: Missing $composeFile" -ForegroundColor Red
Stop-ZTracking; exit 1
}
$envFile = Join-Path $PSScriptRoot ".env"
if (-not (Test-Path $envFile)) {
Write-Host "WARNING: .env not found at $envFile - compose may still start if env vars are set elsewhere." -ForegroundColor DarkYellow
}
Push-Location -Path (Join-Path $PSScriptRoot "docker")
try {
$dcArgs = @("compose", "-f", $composeFileName, "up")
if (-not $Attached) {
$dcArgs += "-d"
}
if ($Build) {
$dcArgs += "--build"
}
Write-Host "Running: docker $($dcArgs -join ' ')" -ForegroundColor DarkGray
& docker @dcArgs
if ($LASTEXITCODE -ne 0) {
Stop-ZTracking; exit $LASTEXITCODE
}
} finally {
Pop-Location
}
Write-Host ""
Write-Host "Stack: http://localhost/" -ForegroundColor Green
if (-not $Attached) {
Write-Host 'Logs: docker compose -f docker/docker-compose.yml logs -f' -ForegroundColor DarkGray
Write-Host 'Stop: docker compose -f docker/docker-compose.yml down' -ForegroundColor DarkGray
}
Stop-ZTracking