lecoffre_node/scripts/pre-build.sh

101 lines
2.8 KiB
Bash
Executable File

#!/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"