diff --git a/Dockerfile b/Dockerfile index 4705478..45d7ae0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -82,10 +82,4 @@ HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \ # Point d'entrée avec script de démarrage ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"] -CMD ["node", "dist/index.js"] - -# Utiliser dumb-init pour gérer les signaux -ENTRYPOINT ["dumb-init", "--"] - -# Démarrer avec le script d'entrée -CMD ["docker-entrypoint.sh"] \ No newline at end of file +CMD ["node", "dist/index.js"] \ No newline at end of file diff --git a/attached_assets/Pasted-o-config-path-provided-using-default-drizzle-config-ts-Reading-config-file-app-drizzle-confi-1752408043211_1752408043211.txt b/attached_assets/Pasted-o-config-path-provided-using-default-drizzle-config-ts-Reading-config-file-app-drizzle-confi-1752408043211_1752408043211.txt new file mode 100644 index 0000000..ffcdf28 --- /dev/null +++ b/attached_assets/Pasted-o-config-path-provided-using-default-drizzle-config-ts-Reading-config-file-app-drizzle-confi-1752408043211_1752408043211.txt @@ -0,0 +1,132 @@ +o config path provided, using default 'drizzle.config.ts' + +Reading config file '/app/drizzle.config.ts' + +Using 'pg' driver for database querying + +[⣷] Pulling schema from database... + +[⣯] Pulling schema from database... + +[⣟] Pulling schema from database... + +[✓] Pulling schema from database... + +[i] No changes detected + +🎯 Starting RegisFlow application... + +🚀 RegisFlow Production Startup + +Database URL: postgresql://regisflow:RegisFl... + +⏳ Waiting for PostgreSQL... + +Database URL: postgresql://regisflow:RegisFlow2024!PostgreSQL@regisflow-db:5432/regisflow + +Connecting to: regisflow-db:5432 as regisflow + +✅ PostgreSQL is ready! + +✅ PostgreSQL is ready! + +🔄 Running database migrations... + +> rest-express@1.0.0 db:push + +> drizzle-kit push + +No config path provided, using default 'drizzle.config.ts' + +Reading config file '/app/drizzle.config.ts' + +Using 'pg' driver for database querying + +[⣷] Pulling schema from database... + +[⣯] Pulling schema from database... + +[✓] Pulling schema from database... + +[i] No changes detected + +🎯 Starting RegisFlow application... + +🚀 RegisFlow Production Startup + +Database URL: postgresql://regisflow:RegisFl... + +⏳ Waiting for PostgreSQL... + +Database URL: postgresql://regisflow:RegisFlow2024!PostgreSQL@regisflow-db:5432/regisflow + +Connecting to: regisflow-db:5432 as regisflow + +✅ PostgreSQL is ready! + +✅ PostgreSQL is ready! + +🔄 Running database migrations... + +> rest-express@1.0.0 db:push + +> drizzle-kit push + +No config path provided, using default 'drizzle.config.ts' + +Reading config file '/app/drizzle.config.ts' + +Using 'pg' driver for database querying + +[⣷] Pulling schema from database... + +[⣯] Pulling schema from database... + +[✓] Pulling schema from database... + +[i] No changes detected + +🎯 Starting RegisFlow application... + +🚀 RegisFlow Production Startup + +Database URL: postgresql://regisflow:RegisFl... + +⏳ Waiting for PostgreSQL... + +Database URL: postgresql://regisflow:RegisFlow2024!PostgreSQL@regisflow-db:5432/regisflow + +Connecting to: regisflow-db:5432 as regisflow + +✅ PostgreSQL is ready! + +✅ PostgreSQL is ready! + +🔄 Running database migrations... + +> rest-express@1.0.0 db:push + +> drizzle-kit push + +No config path provided, using default 'drizzle.config.ts' + +Reading config file '/app/drizzle.config.ts' + +Using 'pg' driver for database querying + +[⣷] Pulling schema from database... + +[⣯] Pulling schema from database... + +[⣟] Pulling schema from database... + +[✓] Pulling schema from database... + +[i] No changes detected + +🎯 Starting RegisFlow application... + + + + + \ No newline at end of file diff --git a/docker-entrypoint-simple.sh b/docker-entrypoint-simple.sh index b59dbb2..c4344a2 100644 --- a/docker-entrypoint-simple.sh +++ b/docker-entrypoint-simple.sh @@ -2,27 +2,27 @@ set -e echo "🚀 RegisFlow Production Startup" -echo "Database URL: ${DATABASE_URL:0:30}..." +echo "Node.js version: $(node --version)" +echo "Current directory: $(pwd)" +echo "Available files:" +ls -la # Attendre que PostgreSQL soit disponible echo "⏳ Waiting for PostgreSQL..." -echo "Database URL: $DATABASE_URL" - -# Extraire les paramètres de connexion plus simplement DB_HOST="regisflow-db" DB_PORT="5432" DB_USER="regisflow" -echo "Connecting to: $DB_HOST:$DB_PORT as $DB_USER" +echo "Testing connection to: $DB_HOST:$DB_PORT as $DB_USER" # Attendre avec timeout -RETRIES=30 +RETRIES=20 while [ $RETRIES -gt 0 ]; do if pg_isready -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" > /dev/null 2>&1; then echo "✅ PostgreSQL is ready!" break fi - echo "PostgreSQL is unavailable - sleeping ($((31-RETRIES))/30)" + echo "PostgreSQL is unavailable - sleeping ($((21-RETRIES))/20)" sleep 3 RETRIES=$((RETRIES-1)) done @@ -32,11 +32,12 @@ if [ $RETRIES -eq 0 ]; then exit 1 fi -echo "✅ PostgreSQL is ready!" - -# Migrer la base de données +# Migrer la base de données une seule fois echo "🔄 Running database migrations..." npm run db:push echo "🎯 Starting RegisFlow application..." +echo "Command to execute: $@" + +# Démarrer l'application avec debugging exec "$@" \ No newline at end of file diff --git a/replit.md b/replit.md index ee4a272..c64ece4 100644 --- a/replit.md +++ b/replit.md @@ -349,6 +349,14 @@ Preferred communication style: Simple, everyday language. - ✅ Created .env.example template for environment configuration - ✅ Optimized Docker Compose for maximum deployment compatibility +### Docker Application Startup Fix (January 13, 2025) +- ✅ Fixed application startup loop after database migrations +- ✅ Cleaned up duplicate ENTRYPOINT declarations in Dockerfile +- ✅ Simplified docker-entrypoint-simple.sh script with proper exec +- ✅ Added debugging output to track application startup process +- ✅ Reduced PostgreSQL timeout to 60 seconds (20 retries × 3s) +- ✅ Enhanced startup script with Node.js version and directory checks + ### Portainer Deployment Fix (January 10, 2025) - ✅ Resolved Docker image pull error "regisflow-regisflow:latest" in Portainer - ✅ Created local image building solution with "regisflow:latest" tag