<# .SYNOPSIS Sa Polar - Gestor de Servicios .DESCRIPTION Permite gestionar los servicios Docker de Sa Polar: start, stop, restart, status, logs, rebuild .PARAMETER Action Acción a realizar: start, stop, restart, status, logs, rebuild .PARAMETER Service Servicio específico (opcional): mysql, backend, frontend #> param( [Parameter(Mandatory = $true)] [ValidateSet("start", "stop", "restart", "status", "logs", "rebuild")] [string]$Action, [string]$Service = "" ) $COMPOSE_DIR = Split-Path -Parent $PSScriptRoot $COMPOSE_FILE = Join-Path $COMPOSE_DIR "docker-compose.yml" if (-not (Test-Path $COMPOSE_FILE)) { Write-Error "docker-compose.yml no encontrado en $COMPOSE_DIR" exit 1 } Set-Location -LiteralPath $COMPOSE_DIR switch ($Action) { "start" { Write-Host "Iniciando servicios..." if ($Service) { docker compose up -d $Service } else { docker compose up -d } } "stop" { Write-Host "Deteniendo servicios..." if ($Service) { docker compose stop $Service } else { docker compose down } } "restart" { Write-Host "Reiniciando servicios..." if ($Service) { docker compose restart $Service } else { docker compose restart } } "status" { docker compose ps } "logs" { if ($Service) { docker compose logs -f $Service } else { docker compose logs -f } } "rebuild" { Write-Warning "Reconstruyendo imágenes... Esto puede tomar varios minutos." $confirm = Read-Host "Continuar? (s/N)" if ($confirm -ne "s" -and $confirm -ne "S") { exit 0 } docker compose build --no-cache docker compose up -d } } if ($LASTEXITCODE -eq 0) { Write-Host "Operación completada." } else { Write-Error "Error durante la operación." }