Files
ibiza_sistema/build-and-push.sh
nickpons666 23b527d3f5 feat: Botón Guardar Todo en conceptos y mejoras Docker
Cambios realizados:
- concept_view.php: Agregado botón 'Guardar Todo' arriba y abajo de la tabla, eliminado botón individual por fila
- dashboard.php: Agregado endpoint save_all_concept_payments para guardar múltiples pagos
- docker-entrypoint.sh: Corregidos permisos de volúmenes para ZimaOS/CasaOS (cambia dueño a www-data)
- docker/Dockerfile: Corregida ruta del entrypoint
- build-and-push.sh: Script interactivo para crear imagen Docker con opción de caché/sin caché

Los cambios permiten guardar todos los pagos de conceptos de una sola vez y mejoran la compatibilidad con despliegues en ZimaOS.
2026-02-13 23:09:45 -06:00

209 lines
7.0 KiB
Bash
Executable File
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# Script interactivo para crear imagen Docker y subirla al registry
# Uso: ./build-and-push.sh
set -e
# Colores para output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# Configuración por defecto
REGISTRY_URL="10.10.4.3:5000"
IMAGE_NAME="condominio_ibiza"
DOCKERFILE_PATH="docker/Dockerfile"
PROJECT_DIR="/var/www/html/ibiza"
# Función para imprimir mensajes
print_info() {
echo -e "${BLUE} $1${NC}"
}
print_success() {
echo -e "${GREEN}$1${NC}"
}
print_warning() {
echo -e "${YELLOW}⚠️ $1${NC}"
}
print_error() {
echo -e "${RED}$1${NC}"
}
# Verificar que estamos en el directorio correcto
if [ ! -f "$DOCKERFILE_PATH" ]; then
print_error "No se encontró el Dockerfile en $DOCKERFILE_PATH"
print_info "Asegúrate de ejecutar este script desde el directorio raíz del proyecto"
exit 1
fi
# Mostrar banner
echo ""
echo "╔════════════════════════════════════════════════════════╗"
echo "║ 🐳 BUILD & PUSH - Condominio Ibiza Docker ║"
echo "╚════════════════════════════════════════════════════════╝"
echo ""
# Paso 1: Preguntar versión/tag
print_info "Paso 1: Versión de la imagen"
echo ""
read -p "Ingresa la versión/tag (ej: v2.1, latest, o deja en blanco para 'latest'): " VERSION
if [ -z "$VERSION" ]; then
VERSION="latest"
fi
print_info "Versión seleccionada: $VERSION"
echo ""
# Paso 2: Confirmar registry
print_info "Paso 2: Configuración del Registry"
echo ""
read -p "Registry URL [$REGISTRY_URL]: " INPUT_REGISTRY
REGISTRY_URL=${INPUT_REGISTRY:-$REGISTRY_URL}
print_info "Registry: $REGISTRY_URL"
echo ""
# Paso 3: Seleccionar modo de build
print_info "Paso 3: Modo de construcción"
echo ""
echo "Selecciona el modo de build:"
echo " 1) Con caché (más rápido, reutiliza capas anteriores)"
echo " 2) Sin caché (--no-cache, fuerza reconstrucción completa)"
echo ""
read -p "Opción [1]: " BUILD_OPTION
USE_CACHE="s"
if [ "$BUILD_OPTION" == "2" ]; then
USE_CACHE="n"
print_info "Modo seleccionado: Sin caché (build completo)"
else
print_info "Modo seleccionado: Con caché (build rápido)"
fi
echo ""
# Mostrar resumen antes de comenzar
echo ""
echo "╔════════════════════════════════════════════════════════╗"
echo "║ 📋 RESUMEN DE OPERACIÓN ║"
echo "╠════════════════════════════════════════════════════════╣"
echo "║ Imagen: $IMAGE_NAME:$VERSION"
echo "║ Registry: $REGISTRY_URL"
echo "║ Dockerfile: $DOCKERFILE_PATH"
if [ "$USE_CACHE" == "n" ]; then
echo "║ Modo: Sin caché (build completo)"
else
echo "║ Modo: Con caché (build rápido)"
fi
echo "╚════════════════════════════════════════════════════════╝"
echo ""
read -p "¿Deseas continuar? (s/n): " CONFIRM
if [[ $CONFIRM != "s" && $CONFIRM != "S" ]]; then
print_warning "Operación cancelada por el usuario"
exit 0
fi
echo ""
print_info "🚀 Iniciando proceso..."
echo ""
# Paso 4: Build de la imagen
print_info "Paso 4: Construyendo imagen Docker..."
if [ "$USE_CACHE" == "n" ]; then
echo " Comando: docker build --no-cache -t $IMAGE_NAME:$VERSION -f $DOCKERFILE_PATH ."
echo ""
if docker build --no-cache -t "$IMAGE_NAME:$VERSION" -f "$DOCKERFILE_PATH" .; then
print_success "Imagen construida exitosamente (sin caché): $IMAGE_NAME:$VERSION"
else
print_error "Error al construir la imagen"
exit 1
fi
else
echo " Comando: docker build -t $IMAGE_NAME:$VERSION -f $DOCKERFILE_PATH ."
echo ""
if docker build -t "$IMAGE_NAME:$VERSION" -f "$DOCKERFILE_PATH" .; then
print_success "Imagen construida exitosamente: $IMAGE_NAME:$VERSION"
else
print_error "Error al construir la imagen"
exit 1
fi
fi
echo ""
# Paso 5: Taggear para el registry
print_info "Paso 5: Taggeando imagen para registry..."
echo " Comando: docker tag $IMAGE_NAME:$VERSION $REGISTRY_URL/$IMAGE_NAME:$VERSION"
echo ""
if docker tag "$IMAGE_NAME:$VERSION" "$REGISTRY_URL/$IMAGE_NAME:$VERSION"; then
print_success "Imagen taggeada: $REGISTRY_URL/$IMAGE_NAME:$VERSION"
else
print_error "Error al taggear la imagen"
exit 1
fi
echo ""
# Paso 6: Subir al registry
read -p "¿Deseas subir la imagen al registry ahora? (s/n): " PUSH_CONFIRM
if [[ $PUSH_CONFIRM == "s" || $PUSH_CONFIRM == "S" ]]; then
print_info "Paso 6: Subiendo imagen al registry..."
echo " Comando: docker push $REGISTRY_URL/$IMAGE_NAME:$VERSION"
echo ""
if docker push "$REGISTRY_URL/$IMAGE_NAME:$VERSION"; then
print_success "Imagen subida exitosamente al registry"
else
print_error "Error al subir la imagen al registry"
print_warning "Verifica que el registry esté accesible en $REGISTRY_URL"
print_info "Puedes intentar subir manualmente con: docker push $REGISTRY_URL/$IMAGE_NAME:$VERSION"
exit 1
fi
else
print_warning "Imagen NO subida al registry"
print_info "Puedes subirla manualmente después con:"
echo " docker push $REGISTRY_URL/$IMAGE_NAME:$VERSION"
fi
echo ""
# Paso 7: Limpiar imágenes locales (opcional)
read -p "¿Deseas eliminar las imágenes locales para liberar espacio? (s/n): " CLEANUP_CONFIRM
if [[ $CLEANUP_CONFIRM == "s" || $CLEANUP_CONFIRM == "S" ]]; then
print_info "Limpiando imágenes locales..."
docker rmi "$IMAGE_NAME:$VERSION" "$REGISTRY_URL/$IMAGE_NAME:$VERSION" 2>/dev/null || true
print_success "Imágenes locales eliminadas"
fi
echo ""
echo "╔════════════════════════════════════════════════════════╗"
echo "║ ✅ PROCESO COMPLETADO ║"
echo "╠════════════════════════════════════════════════════════╣"
echo "║ Imagen: $REGISTRY_URL/$IMAGE_NAME:$VERSION"
echo "╚════════════════════════════════════════════════════════╝"
echo ""
print_info "Para usar esta imagen en ZimaOS/CasaOS:"
echo ""
echo "1. Actualiza tu archivo ibiza.yaml:"
echo " image: $REGISTRY_URL/$IMAGE_NAME:$VERSION"
echo ""
echo "2. Reinicia el contenedor en ZimaOS/CasaOS"
echo ""
echo "3. Verifica los logs:"
echo " docker logs condominio_ibiza"
echo ""
print_success "¡Listo!"
echo ""