first commit
This commit is contained in:
88
build-and-push.sh
Normal file
88
build-and-push.sh
Normal file
@@ -0,0 +1,88 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Script para construir y publicar imágenes de Syntria a Docker Hub
|
||||
|
||||
set -e
|
||||
|
||||
# Colores para output
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
echo -e "${GREEN}🚀 Syntria - Build & Push to Docker Hub${NC}"
|
||||
echo "=========================================="
|
||||
|
||||
# Verificar que estamos en el directorio correcto
|
||||
if [ ! -f "docker-compose.yml" ]; then
|
||||
echo -e "${RED}❌ Error: Ejecuta este script desde el directorio raíz del proyecto${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Leer variables de entorno
|
||||
if [ -f ".env.production" ]; then
|
||||
export $(cat .env.production | grep -v '^#' | xargs)
|
||||
fi
|
||||
|
||||
# Verificar Docker Hub username
|
||||
if [ -z "$DOCKER_USERNAME" ]; then
|
||||
echo -e "${YELLOW}⚠️ DOCKER_USERNAME no está configurado en .env.production${NC}"
|
||||
read -p "Ingresa tu username de Docker Hub: " DOCKER_USERNAME
|
||||
fi
|
||||
|
||||
# Verificar versión
|
||||
read -p "Versión a construir (default: latest): " VERSION
|
||||
VERSION=${VERSION:-latest}
|
||||
|
||||
echo ""
|
||||
echo -e "${GREEN}Configuración:${NC}"
|
||||
echo " Docker Hub User: $DOCKER_USERNAME"
|
||||
echo " Versión: $VERSION"
|
||||
echo ""
|
||||
|
||||
# Confirmar
|
||||
read -p "¿Continuar? (y/n) " -n 1 -r
|
||||
echo
|
||||
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
||||
echo -e "${YELLOW}Cancelado${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Login a Docker Hub
|
||||
echo ""
|
||||
echo -e "${GREEN}📦 Iniciando sesión en Docker Hub...${NC}"
|
||||
docker login
|
||||
|
||||
# Build Backend
|
||||
echo ""
|
||||
echo -e "${GREEN}🔨 Construyendo Backend...${NC}"
|
||||
docker build -t $DOCKER_USERNAME/syntria-backend:$VERSION -f backend/Dockerfile.prod backend/
|
||||
docker tag $DOCKER_USERNAME/syntria-backend:$VERSION $DOCKER_USERNAME/syntria-backend:latest
|
||||
|
||||
# Build Frontend
|
||||
echo ""
|
||||
echo -e "${GREEN}🔨 Construyendo Frontend...${NC}"
|
||||
docker build -t $DOCKER_USERNAME/syntria-frontend:$VERSION -f frontend/Dockerfile.prod frontend/
|
||||
docker tag $DOCKER_USERNAME/syntria-frontend:$VERSION $DOCKER_USERNAME/syntria-frontend:latest
|
||||
|
||||
# Push images
|
||||
echo ""
|
||||
echo -e "${GREEN}⬆️ Subiendo imágenes a Docker Hub...${NC}"
|
||||
docker push $DOCKER_USERNAME/syntria-backend:$VERSION
|
||||
docker push $DOCKER_USERNAME/syntria-backend:latest
|
||||
docker push $DOCKER_USERNAME/syntria-frontend:$VERSION
|
||||
docker push $DOCKER_USERNAME/syntria-frontend:latest
|
||||
|
||||
echo ""
|
||||
echo -e "${GREEN}✅ ¡Imágenes publicadas exitosamente!${NC}"
|
||||
echo ""
|
||||
echo "Imágenes disponibles:"
|
||||
echo " 🐳 $DOCKER_USERNAME/syntria-backend:$VERSION"
|
||||
echo " 🐳 $DOCKER_USERNAME/syntria-backend:latest"
|
||||
echo " 🐳 $DOCKER_USERNAME/syntria-frontend:$VERSION"
|
||||
echo " 🐳 $DOCKER_USERNAME/syntria-frontend:latest"
|
||||
echo ""
|
||||
echo -e "${YELLOW}Próximos pasos:${NC}"
|
||||
echo "1. Actualiza DOCKER_USERNAME en .env.production"
|
||||
echo "2. En tu servidor de producción, ejecuta:"
|
||||
echo " docker-compose -f docker-compose.prod.yml --env-file .env.production up -d"
|
||||
Reference in New Issue
Block a user