mirror of
https://github.com/R0m1k3/Regisflow.git
synced 2026-10-12 01:39:58 +02:00
Fixes `import.meta.dirname` issue in Node.js 18 by patching `/app/dist/index.js` with `sed` in `docker-entrypoint-simple.sh`. Replit-Commit-Author: Agent Replit-Commit-Session-Id: e80fed01-7137-4997-b9af-dad57132d430 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/0715008c-7244-40f4-befc-26c014852236/db75d429-4075-4348-b179-bb283fb6d9d3.jpg
69 lines
1.9 KiB
Bash
69 lines
1.9 KiB
Bash
#!/bin/sh
|
|
set -e
|
|
|
|
# Script d'entrée simplifié pour RegisFlow
|
|
echo "🚀 Démarrage de RegisFlow (mode simplifié)..."
|
|
|
|
# Attendre que PostgreSQL soit prêt
|
|
echo "📡 Attente de la base de données..."
|
|
RETRIES=24
|
|
while [ $RETRIES -gt 0 ]; do
|
|
if pg_isready -h regisflow-db -p 5432 -U regisflow >/dev/null 2>&1; then
|
|
echo "✅ PostgreSQL prêt!"
|
|
break
|
|
fi
|
|
echo "⏳ Attente... ($((25-RETRIES))/24)"
|
|
sleep 5
|
|
RETRIES=$((RETRIES-1))
|
|
done
|
|
|
|
if [ $RETRIES -eq 0 ]; then
|
|
echo "❌ Timeout: Base de données non accessible"
|
|
exit 1
|
|
fi
|
|
|
|
# Créer les répertoires nécessaires
|
|
mkdir -p /app/backups /app/logs
|
|
|
|
# Créer les tables de la base de données
|
|
echo "📦 Création des tables de la base de données..."
|
|
|
|
# Méthode 1: Utiliser Drizzle Kit (recommandé)
|
|
if npx drizzle-kit push --config=./drizzle.config.ts; then
|
|
echo "✅ Tables créées avec succès via Drizzle"
|
|
else
|
|
echo "⚠️ Drizzle Kit failed, essai avec init.sql..."
|
|
|
|
# Méthode 2: Fallback avec init.sql si Drizzle échoue
|
|
if [ -f "/app/init.sql" ]; then
|
|
export PGPASSWORD="$POSTGRES_PASSWORD"
|
|
if psql -h regisflow-db -p 5432 -U regisflow -d regisflow -f /app/init.sql; then
|
|
echo "✅ Tables créées avec succès via init.sql"
|
|
else
|
|
echo "❌ Erreur lors de la création des tables"
|
|
exit 1
|
|
fi
|
|
else
|
|
echo "❌ Aucune méthode d'initialisation disponible"
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
echo "✅ Base de données configurée"
|
|
|
|
# Corriger le problème import.meta.dirname pour Node.js 18
|
|
echo "🔧 Application du patch Node.js 18..."
|
|
if [ -f "/app/dist/index.js" ]; then
|
|
# Remplacer import.meta.dirname par "/app" (chemin fixe en production)
|
|
sed -i 's/import\.meta\.dirname/\"\/app\"/g' /app/dist/index.js
|
|
echo "✅ Patch appliqué avec succès"
|
|
else
|
|
echo "⚠️ Fichier dist/index.js non trouvé"
|
|
fi
|
|
|
|
# Démarrer l'application
|
|
echo "🎯 Démarrage de RegisFlow..."
|
|
export NODE_ENV=production
|
|
export PORT=5000
|
|
cd /app
|
|
exec node dist/index.js |