#!/bin/bash set -e echo "🚀 Démarrage du build APK..." # Vérifier que Docker est installé if ! command -v docker &> /dev/null; then echo "❌ Docker n'est pas installé. Veuillez l'installer d'abord." exit 1 fi # Vérifier que docker compose est disponible if ! docker compose version &> /dev/null; then echo "❌ docker compose n'est pas disponible. Veuillez l'installer d'abord." exit 1 fi # Construire l'image Docker echo "📦 Construction de l'image Docker..." docker compose -f docker-compose.build.yml build # Démarrer le conteneur et exécuter les commandes de build echo "🔨 Build de l'application Next.js..." docker compose -f docker-compose.build.yml run --rm android-builder bash -c " set -e cd /app echo '📦 Vérification du volume node_modules...' df -h /app/node_modules ls -la /app/node_modules | head -5 echo '📦 Installation des dépendances Node.js...' npm install --include=dev echo '📦 Vérification après installation...' ls -la /app/node_modules/tailwindcss 2>&1 | head -3 || echo '❌ tailwindcss toujours absent' npm list tailwindcss 2>&1 | head -3 || echo '❌ tailwindcss non listé' if [ ! -d "/app/node_modules/tailwindcss" ]; then echo '⚠️ tailwindcss manquant, installation forcée...' npm install tailwindcss postcss autoprefixer --save-dev --force fi echo '📦 Installation des dépendances Capacitor...' npm install @capacitor/core @capacitor/cli @capacitor/android echo '🧹 Nettoyage du cache Next.js...' rm -rf .next echo '⚙️ Configuration Next.js pour export statique...' if [ -f next.config.export.js ]; then cp next.config.export.js next.config.js echo '✅ Configuration d export utilisée' else cp next.config.js next.config.js.backup sed -i 's/\"output\": \"standalone\"/\"output\": \"export\"/' next.config.js sed -i '/images:/a\ unoptimized: true,' next.config.js echo '✅ Configuration modifiée pour export statique' fi echo '⚙️ Exclusion temporaire des routes API...' if [ -d app/api ]; then mv app/api /tmp/api-backup-$$ 2>/dev/null || mv app/api ../api-backup-$$ echo '✅ Routes API déplacées temporairement' fi echo '🏗️ Build de production Next.js...' npm run build || npm run build -- --no-lint echo '⚙️ Restauration des routes API...' if [ -d /tmp/api-backup-$$ ]; then mv /tmp/api-backup-$$ app/api echo '✅ Routes API restaurées' elif [ -d ../api-backup-$$ ]; then mv ../api-backup-$$ app/api echo '✅ Routes API restaurées' fi echo '⚙️ Vérification du dossier out...' ls -la out/ 2>&1 | head -10 || echo '⚠️ Dossier out non trouvé' echo '⚙️ Restauration de la configuration Next.js...' if [ -f next.config.js.backup ]; then mv next.config.js.backup next.config.js fi echo '⚙️ Initialisation Capacitor (si nécessaire)...' if [ ! -f capacitor.config.ts ]; then npx cap init 'Compagnon Admin' com.pensionmarama.admin --web-dir=out fi echo '📱 Ajout de la plateforme Android...' npx cap add android || true echo '🔄 Synchronisation Capacitor...' npx cap sync android echo '✅ Build terminé !' " echo "📱 Ouverture du projet Android dans le conteneur..." echo "Pour générer l'APK, exécutez dans le conteneur :" echo " cd android && ./gradlew assembleDebug" echo "" echo "Ou utilisez Android Studio :" echo " npx cap open android" echo "" echo "Pour entrer dans le conteneur :" echo " docker compose -f docker-compose.build.yml run --rm android-builder /bin/bash"