#!/bin/bash set -e REGISTRY="registry-pons.duckdns.org" IMAGE_NAME="nomina-ventas" echo "========================================" echo " Build Docker Image - Nomina Ventas" echo "========================================" echo "" # 1. Ask for tag read -p "Ingresa el tag de la imagen (ej: latest, v1.0.0): " TAG if [ -z "$TAG" ]; then TAG="latest" fi FULL_IMAGE="${REGISTRY}/${IMAGE_NAME}:${TAG}" echo "Imagen: $FULL_IMAGE" echo "" # 2. Ask for cache echo "¿Quieres construir con cache (más rápido) o sin cache (más limpio)?" select CACHE_CHOICE in "Con cache" "Sin cache (--no-cache)"; do case $CACHE_CHOICE in "Con cache") BUILD_CACHE="" ;; "Sin cache (--no-cache)") BUILD_CACHE="--no-cache" ;; esac break done echo "" # 3. Ask for registry push echo "¿Quieres subir la imagen al registry?" select PUSH_CHOICE in "Sí" "No (solo construir local)"; do case $PUSH_CHOICE in "Sí") DO_PUSH=true ;; "No (solo construir local)") DO_PUSH=false ;; esac break done echo "" # 4. Build the image echo "========================================" echo " Construyendo imagen..." echo "========================================" docker build \ --tag "${FULL_IMAGE}" \ ${BUILD_CACHE} \ --build-arg PUID=$(id -u) \ --build-arg PGID=$(id -g) \ . echo "" echo "✅ Imagen construida: ${FULL_IMAGE}" echo "" # 5. Push if requested if [ "$DO_PUSH" = true ]; then echo "========================================" echo " Subiendo al registry..." echo "========================================" docker push "${FULL_IMAGE}" echo "" echo "✅ Imagen subida al registry" fi # 6. Update docker-compose.prod.yml with the tag echo "========================================" echo " Actualizando docker-compose.prod.yml" echo "========================================" sed -i "s|image: \${REGISTRY:-registry-pons.duckdns.org}/\${IMAGE:-nomina-ventas}:\${TAG:-latest}|image: ${FULL_IMAGE}|g" docker-compose.prod.yml echo "✅ docker-compose.prod.yml actualizado" echo "" echo "========================================" echo " Resumen" echo "========================================" echo " Imagen local: ${FULL_IMAGE}" [ "$DO_PUSH" = true ] && echo " Registry: ${FULL_IMAGE}" echo "" echo " Para producción:" echo " 1. Edita .env.docker con tus valores" echo " 2. cp .env.docker .env" echo " 3. docker compose -f docker-compose.prod.yml up -d" echo "" echo " El puerto expuesto será: 8004" echo " Los datos se almacenarán en: /media/DATOS/AppData/nomina_pegaso" echo "" echo "✅ Completado!"