88 lines
3.0 KiB
PowerShell
88 lines
3.0 KiB
PowerShell
# 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"
|
|
|
|
|