first commit

This commit is contained in:
2025-11-19 01:09:25 -03:00
parent e7a380f36e
commit be10a888fb
28 changed files with 2481 additions and 464 deletions

87
build-and-push.ps1 Normal file
View File

@@ -0,0 +1,87 @@
# 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"