#!/bin/bash # Script interactivo para construir y subir imagen al Registry Privado # Configuración REGISTRY_URL="10.10.4.3:5000" IMAGE_NAME="contenedor_ibiza" # Colores GREEN='\033[0;32m' YELLOW='\033[1;33m' RED='\033[0;31m' NC='\033[0m' echo -e "${YELLOW}🚀 Iniciando proceso de Build & Push para Contenedor Ibiza${NC}" echo "--------------------------------------------------------" # 1. Solicitar Tag read -p "🏷️ Ingresa el tag/versión para la imagen (default: latest): " TAG TAG=${TAG:-latest} FULL_IMAGE_NAME="$REGISTRY_URL/$IMAGE_NAME:$TAG" LATEST_IMAGE_NAME="$REGISTRY_URL/$IMAGE_NAME:latest" echo -e "\n${YELLOW}📝 Configuración:${NC}" echo " - Registry: $REGISTRY_URL" echo " - Imagen: $FULL_IMAGE_NAME" echo "--------------------------------------------------------" read -p "¿Continuar? (S/n): " CONFIRM CONFIRM=${CONFIRM:-S} if [[ "$CONFIRM" != "S" && "$CONFIRM" != "s" ]]; then echo -e "${RED}❌ Cancelado por el usuario.${NC}" exit 1 fi # 2. Construir Imagen echo -e "\n${GREEN}🔨 Construyendo imagen...${NC}" # Nos aseguramos de estar en el directorio raíz del proyecto cd "$(dirname "$0")/.." || exit if docker build -t "$FULL_IMAGE_NAME" .; then echo -e "${GREEN}✅ Build exitoso.${NC}" else echo -e "${RED}❌ Error en el Build.${NC}" exit 1 fi # 3. Subir Imagen echo -e "\n${GREEN}bw 📤 Subiendo imagen a $REGISTRY_URL...${NC}" if docker push "$FULL_IMAGE_NAME"; then echo -e "${GREEN}✅ Push exitoso: $FULL_IMAGE_NAME${NC}" else echo -e "${RED}❌ Error al subir imagen. ¿Docker tiene acceso al registry http?${NC}" echo "Tip: Revisa /etc/docker/daemon.json para 'insecure-registries'" exit 1 fi # 4. Opcional: Subir también como 'latest' si se usó un tag específico if [ "$TAG" != "latest" ]; then read -p "¿Deseas etiquetar y subir también como ':latest'? (S/n): " UPDATE_LATEST UPDATE_LATEST=${UPDATE_LATEST:-S} if [[ "$UPDATE_LATEST" == "S" || "$UPDATE_LATEST" == "s" ]]; then docker tag "$FULL_IMAGE_NAME" "$LATEST_IMAGE_NAME" docker push "$LATEST_IMAGE_NAME" echo -e "${GREEN}✅ Tag 'latest' actualizado.${NC}" fi fi echo -e "\n${GREEN}🎉 ¡Todo listo! La imagen ya está en tu registro.${NC}"