67 lines
1.8 KiB
PowerShell
67 lines
1.8 KiB
PowerShell
<#
|
|
.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."
|
|
}
|