Fix: Solucionados problemas de permisos en Docker y agregada gestion de Webhook de Telegram
This commit is contained in:
93
build.sh
Executable file
93
build.sh
Executable file
@@ -0,0 +1,93 @@
|
||||
#!/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!"
|
||||
Reference in New Issue
Block a user