- Ajout de Java 21 dans Dockerfile pour compatibilité Capacitor - Création de fichiers de types séparés (lib/types/) pour éviter dépendances API routes - Configuration next.config.export.js pour export statique - Exclusion temporaire des routes API pendant le build - Correction configuration Gradle (Java 17/21) - Script build-apk.sh amélioré avec gestion des routes API - APK généré avec succès (4.5MB) dans dist/compagnon-admin-debug.apk Fichiers de types créés: - lib/types/place.ts - lib/types/infos.ts - lib/types/tides.ts - lib/types/excursions.ts - lib/types/sun-times.ts - lib/types/notifications.ts Tous les imports mis à jour pour utiliser les nouveaux fichiers de types.
112 lines
3.7 KiB
Bash
Executable File
112 lines
3.7 KiB
Bash
Executable File
#!/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"
|
|
|