Files
nomina_ventas/build.sh

93 lines
2.5 KiB
Bash
Executable File

#!/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!"