first commit
This commit is contained in:
87
build-and-push.ps1
Normal file
87
build-and-push.ps1
Normal 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"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user