73 lines
2.2 KiB
Bash
Executable File
73 lines
2.2 KiB
Bash
Executable File
#!/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}"
|