101 lines
2.8 KiB
Bash
Executable File
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"
|