93 lines
2.5 KiB
Bash
Executable File
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!" |