#!/bin/bash # Script de préparation avant build Docker # Synchronise les configurations et prépare l'environnement set -euo pipefail # Couleurs pour les logs RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' # No Color # Fonction de logging log() { echo -e "${BLUE}[$(date +'%Y-%m-%d %H:%M:%S')]${NC} $1" } log_success() { echo -e "${GREEN}[$(date +'%Y-%m-%d %H:%M:%S')] ✓${NC} $1" } log_warning() { echo -e "${YELLOW}[$(date +'%Y-%m-%d %H:%M:%S')] ⚠${NC} $1" } log_error() { echo -e "${RED}[$(date +'%Y-%m-%d %H:%M:%S')] ✗${NC} $1" } # Répertoire racine du projet PROJECT_ROOT="/home/debian/lecoffre_node" # Changer vers le répertoire du projet cd "$PROJECT_ROOT" log "Préparation avant build Docker..." # 1. Synchroniser toutes les configurations log "Synchronisation des configurations..." if ./scripts/sync-configs.sh; then log_success "Configurations synchronisées" else log_error "Échec de la synchronisation des configurations" exit 1 fi # 2. Mettre à jour les dépendances de tous les projets log "Mise à jour des dépendances..." if ./scripts/startup-sequence.sh update-deps; then log_success "Dépendances mises à jour" else log_warning "Échec de la mise à jour des dépendances" fi # 3. Vérifier les fichiers ignore log "Vérification des fichiers ignore..." if ./scripts/startup-sequence.sh check-ignore; then log_success "Fichiers ignore vérifiés" else log_warning "Problèmes détectés avec les fichiers ignore" fi # 4. Nettoyer les fichiers non suivis log "Nettoyage des fichiers non suivis..." if ./scripts/startup-sequence.sh clean-untracked; then log_success "Fichiers non suivis nettoyés" else log_warning "Échec du nettoyage des fichiers non suivis" fi # 5. Vérifier que les services nécessaires sont arrêtés log "Vérification des services Docker..." if docker compose ps --services --filter "status=running" | grep -q .; then log_warning "Certains services sont en cours d'exécution" log "Arrêt des services pour le build..." docker compose down log_success "Services arrêtés" else log_success "Aucun service en cours d'exécution" fi # 6. Nettoyer les images Docker obsolètes (optionnel) if [[ "${CLEAN_DOCKER:-false}" == "true" ]]; then log "Nettoyage des images Docker obsolètes..." docker system prune -f log_success "Nettoyage terminé" fi # 7. Vérifier l'espace disque log "Vérification de l'espace disque..." DISK_USAGE=$(df /home/debian | tail -1 | awk '{print $5}' | sed 's/%//') if [[ $DISK_USAGE -gt 90 ]]; then log_warning "Espace disque faible: ${DISK_USAGE}% utilisé" else log_success "Espace disque OK: ${DISK_USAGE}% utilisé" fi log_success "Préparation terminée - Prêt pour le build Docker"