chore: baseline plantilla-proyectos como base del CRM
This commit is contained in:
44
frontend/docker-entrypoint.sh
Normal file
44
frontend/docker-entrypoint.sh
Normal file
@@ -0,0 +1,44 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
# Arranque del contenedor: opcionalmente espera al health del backend, luego ejecuta CMD (pnpm dev / start, …)
|
||||
|
||||
wait_for_backend() {
|
||||
local url=$1
|
||||
local max_attempts=30
|
||||
local attempt=1
|
||||
|
||||
echo "Esperando a que el backend esté disponible en ${url}..."
|
||||
|
||||
while [ $attempt -le $max_attempts ]; do
|
||||
# NOTA: usar la URL tal cual la pasa el caller. Antes esta función agregaba
|
||||
# un "/health" extra al final (resultando en /api/health/health → 404), lo
|
||||
# que provocaba que el entrypoint esperara 30 intentos en vano antes de
|
||||
# arrancar Vite, sumando ~90 s muertos al arranque del frontend.
|
||||
if wget -q -O /dev/null "${url}" 2>/dev/null; then
|
||||
echo "✓ Backend está listo"
|
||||
return 0
|
||||
fi
|
||||
|
||||
echo "Backend no está listo aún... (intento $attempt/$max_attempts)"
|
||||
attempt=$((attempt + 1))
|
||||
sleep 3
|
||||
done
|
||||
|
||||
echo "⚠ WARNING: Backend no estuvo disponible, continuando de todas formas"
|
||||
return 0
|
||||
}
|
||||
|
||||
# compose usa INTERNAL_API_URL; alias opcional BACKEND_INTERNAL_URL
|
||||
_api_base="${INTERNAL_API_URL:-${BACKEND_INTERNAL_URL:-http://backend:8000/api}}"
|
||||
_api_base="${_api_base%/}"
|
||||
wait_for_backend "${_api_base}/health"
|
||||
|
||||
# En desarrollo (volumen montado) reinstala deps si cambia package.json
|
||||
if [ "$NODE_ENV" = "development" ]; then
|
||||
echo "Instalando dependencias (development)..."
|
||||
CI=true pnpm install
|
||||
fi
|
||||
|
||||
echo "Iniciando: $*"
|
||||
exec "$@"
|
||||
Reference in New Issue
Block a user