Adopter la structure FHS /srv/docker/ et /opt/docker-scripts/
Changements majeurs : - SCRIPTS_DIR passe de ~/scripts a /opt/docker-scripts (FHS /opt/) - COMPOSE_DIR, VOLUME_DATA, VOLUME_MYSQL passes a /srv/docker/ (FHS /srv/) - Ajout de GIT_REPO et GIT_BRANCH dans docker-scripts.conf - setup.sh source la config des le debut pour centraliser tous les defauts - Tous les fallbacks internes des scripts alignes avec la config - docker-compose.yml de reference mis a jour - README : nouvelles instructions d'installation et chemins Avantages : un seul dossier par app Docker, backup/migration simplifies, structure standard FHS, aucune modif de script necessaire par projet.
This commit is contained in:
@@ -20,6 +20,13 @@
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
# ─── Charger la configuration si présente (permet de centraliser tous les défauts) ─
|
||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
if [[ -f "$SCRIPT_DIR/docker-scripts.conf" ]]; then
|
||||
# shellcheck source=/dev/null
|
||||
source "$SCRIPT_DIR/docker-scripts.conf"
|
||||
fi
|
||||
|
||||
# ─── Couleurs ───────────────────────────────────────────────────────────────
|
||||
RED='\033[0;31m'; GREEN='\033[0;32m'; YELLOW='\033[1;33m'; CYAN='\033[0;36m'; BLUE='\033[0;34m'; NC='\033[0m'
|
||||
ok() { echo -e " ${GREEN}✅${NC} $1"; }
|
||||
@@ -28,10 +35,10 @@ err() { echo -e " ${RED}❌${NC} $1"; }
|
||||
info() { echo -e " ${CYAN}📋${NC} $1"; }
|
||||
step() { echo -e "\n${BLUE}════════════════════════════════════════════════════════${NC}"; echo -e "${BLUE}🔧 $1${NC}"; echo -e "${BLUE}════════════════════════════════════════════════════════${NC}"; }
|
||||
|
||||
# ─── Configuration ──────────────────────────────────────────────────────────
|
||||
GIT_REPO="${GIT_REPO:-https://git.dracodev.net/Outils/docker-scripts.git}"
|
||||
SCRIPTS_DIR="${SCRIPTS_DIR:-$HOME/scripts}"
|
||||
BRANCH="${BRANCH:-main}"
|
||||
# ─── Configuration (fallbacks après chargement de la config) ──────────────────
|
||||
GIT_REPO="${GIT_REPO:-https://git.dracodev.net/Outils/docker-generic-scripts.git}"
|
||||
SCRIPTS_DIR="${SCRIPTS_DIR:-/opt/docker-scripts}"
|
||||
BRANCH="${GIT_BRANCH:-main}"
|
||||
DOCKER_APP_NAME="${DOCKER_APP_NAME:-gitea}"
|
||||
|
||||
# ─── Usage ──────────────────────────────────────────────────────────────────
|
||||
@@ -47,7 +54,7 @@ Options :
|
||||
|
||||
Variables d'environnement :
|
||||
GIT_REPO URL du dépôt Git (défaut: $GIT_REPO)
|
||||
SCRIPTS_DIR Dossier d'installation (défaut: \$HOME/scripts)
|
||||
SCRIPTS_DIR Dossier d'installation (défaut: /opt/docker-scripts)
|
||||
BRANCH Branche Git à utiliser (défaut: main)
|
||||
EOF
|
||||
exit 0
|
||||
@@ -177,27 +184,32 @@ make_executable() {
|
||||
setup_logs() {
|
||||
step "Étape 4/6 : Configuration des logs"
|
||||
|
||||
# Charger la config pour connaître LOG_DIR
|
||||
if [[ -f "$SCRIPTS_DIR/docker-scripts.conf" ]]; then
|
||||
source "$SCRIPTS_DIR/docker-scripts.conf"
|
||||
fi
|
||||
# LOG_DIR, BACKUP_CRON_LOG, UPDATE_CRON_LOG déjà chargés depuis docker-scripts.conf
|
||||
LOG_DIR="${LOG_DIR:-/var/log}"
|
||||
BACKUP_CRON_LOG="${BACKUP_CRON_LOG:-$LOG_DIR/${DOCKER_APP_NAME}-backup-cron.log}"
|
||||
UPDATE_CRON_LOG="${UPDATE_CRON_LOG:-$LOG_DIR/${DOCKER_APP_NAME}-update-cron.log}"
|
||||
|
||||
if [[ -d "$LOG_DIR" ]] && [[ -w "$LOG_DIR" ]]; then
|
||||
ok "Dossier de logs $LOG_DIR accessible"
|
||||
elif [[ -d "$LOG_DIR" ]]; then
|
||||
warn "Pas de droit d'écriture sur $LOG_DIR"
|
||||
info "Les logs seront écrits dans $HOME/"
|
||||
LOG_DIR="$HOME"
|
||||
BACKUP_CRON_LOG="$HOME/${DOCKER_APP_NAME}-backup-cron.log"
|
||||
UPDATE_CRON_LOG="$HOME/${DOCKER_APP_NAME}-update-cron.log"
|
||||
else
|
||||
if mkdir -p "$LOG_DIR" 2>/dev/null; then
|
||||
ok "Dossier de logs $LOG_DIR créé"
|
||||
else
|
||||
warn "Impossible de créer $LOG_DIR — logs dans $HOME/"
|
||||
LOG_DIR="$HOME"
|
||||
BACKUP_CRON_LOG="$HOME/${DOCKER_APP_NAME}-backup-cron.log"
|
||||
UPDATE_CRON_LOG="$HOME/${DOCKER_APP_NAME}-update-cron.log"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Créer les fichiers de log s'ils n'existent pas
|
||||
touch "$HOME/${DOCKER_APP_NAME}-backup-cron.log" "$HOME/${DOCKER_APP_NAME}-update-cron.log" 2>/dev/null || true
|
||||
touch "$BACKUP_CRON_LOG" "$UPDATE_CRON_LOG" 2>/dev/null || true
|
||||
|
||||
return 0
|
||||
}
|
||||
@@ -218,7 +230,7 @@ setup_logrotate() {
|
||||
need_sudo=true
|
||||
fi
|
||||
|
||||
local log_files="$HOME/${DOCKER_APP_NAME}-backup-cron.log $HOME/${DOCKER_APP_NAME}-update-cron.log /var/log/${DOCKER_APP_NAME}-backup.log /var/log/${DOCKER_APP_NAME}-update.log"
|
||||
local log_files="$BACKUP_CRON_LOG $UPDATE_CRON_LOG /var/log/${DOCKER_APP_NAME}-backup.log /var/log/${DOCKER_APP_NAME}-update.log"
|
||||
|
||||
cat << LOGROTATE
|
||||
# Rotation des logs Docker scripts
|
||||
@@ -444,8 +456,8 @@ echo ""
|
||||
echo "📊 Logs :"
|
||||
echo " Backup : ${LOG_DIR:-/var/log}/${DOCKER_APP_NAME}-backup.log"
|
||||
echo " Update : ${LOG_DIR:-/var/log}/${DOCKER_APP_NAME}-update.log"
|
||||
echo " Cron backup : $HOME/${DOCKER_APP_NAME}-backup-cron.log"
|
||||
echo " Cron update : $HOME/${DOCKER_APP_NAME}-update-cron.log"
|
||||
echo " Cron backup : ${BACKUP_CRON_LOG:-$HOME/${DOCKER_APP_NAME}-backup-cron.log}"
|
||||
echo " Cron update : ${UPDATE_CRON_LOG:-$HOME/${DOCKER_APP_NAME}-update-cron.log}"
|
||||
echo ""
|
||||
echo "🕐 Tâches cron :"
|
||||
echo " Backup : $(grep "$SCRIPTS_DIR/docker-backup.sh" <(crontab -l 2>/dev/null) | awk '{print $1" "$2" "$3" "$4" "$5}')"
|
||||
|
||||
Reference in New Issue
Block a user