# Script PowerShell para construir y publicar imagenes de Syntria a Docker Hub $ErrorActionPreference = "Stop" Write-Host "🚀 Syntria - Build & Push to Docker Hub" -ForegroundColor Green Write-Host "==========================================" -ForegroundColor Green Write-Host "" # Verificar que estamos en el directorio correcto if (-not (Test-Path "docker-compose.yml")) { Write-Host "❌ Error: Ejecuta este script desde el directorio raiz del proyecto" -ForegroundColor Red exit 1 } # Leer variables de entorno if (Test-Path ".env.production") { Get-Content ".env.production" | ForEach-Object { if ($_ -match "^([^#][^=]+)=(.*)$") { Set-Item -Path "env:$($matches[1])" -Value $matches[2] } } } # Verificar Docker Hub username if (-not $env:DOCKER_USERNAME) { $env:DOCKER_USERNAME = Read-Host "Ingresa tu username de Docker Hub" } # Verificar version $version = Read-Host "Version a construir (default: latest)" if ([string]::IsNullOrWhiteSpace($version)) { $version = "latest" } Write-Host "" Write-Host "Configuracion:" -ForegroundColor Green Write-Host " Docker Hub User: $env:DOCKER_USERNAME" Write-Host " Version: $version" Write-Host "" # Confirmar $confirm = Read-Host "Continuar? (y/n)" if ($confirm -ne "y") { Write-Host "Cancelado" -ForegroundColor Yellow exit 0 } # Login a Docker Hub Write-Host "" Write-Host "📦 Iniciando sesion en Docker Hub..." -ForegroundColor Green docker login # Build Backend Write-Host "" Write-Host "🔨 Construyendo Backend..." -ForegroundColor Green docker build -t "$env:DOCKER_USERNAME/syntria-backend:$version" -f backend/Dockerfile.prod backend/ docker tag "$env:DOCKER_USERNAME/syntria-backend:$version" "$env:DOCKER_USERNAME/syntria-backend:latest" # Build Frontend Write-Host "" Write-Host "🔨 Construyendo Frontend..." -ForegroundColor Green docker build -t "$env:DOCKER_USERNAME/syntria-frontend:$version" -f frontend/Dockerfile.prod frontend/ docker tag "$env:DOCKER_USERNAME/syntria-frontend:$version" "$env:DOCKER_USERNAME/syntria-frontend:latest" # Push images Write-Host "" Write-Host "⬆️ Subiendo imagenes a Docker Hub..." -ForegroundColor Green docker push "$env:DOCKER_USERNAME/syntria-backend:$version" docker push "$env:DOCKER_USERNAME/syntria-backend:latest" docker push "$env:DOCKER_USERNAME/syntria-frontend:$version" docker push "$env:DOCKER_USERNAME/syntria-frontend:latest" Write-Host "" Write-Host "✅ Imagenes publicadas exitosamente!" -ForegroundColor Green Write-Host "" Write-Host "Imagenes disponibles:" Write-Host " 🐳 $env:DOCKER_USERNAME/syntria-backend:$version" Write-Host " 🐳 $env:DOCKER_USERNAME/syntria-backend:latest" Write-Host " 🐳 $env:DOCKER_USERNAME/syntria-frontend:$version" Write-Host " 🐳 $env:DOCKER_USERNAME/syntria-frontend:latest" Write-Host "" Write-Host "Proximos pasos:" -ForegroundColor Yellow Write-Host "1. Actualiza DOCKER_USERNAME en .env.production" Write-Host "2. En tu servidor de produccion, ejecuta:" Write-Host " docker-compose -f docker-compose.prod.yml --env-file .env.production up -d"