docker-infra/3. scripts/update-all.sh

71 lines
2.4 KiB
Bash
Raw Normal View History

2025-11-28 20:01:41 +00:00
#!/bin/bash
2025-11-28 21:20:34 +00:00
# Stop het script direct als er een error optreedt
2025-11-28 20:01:41 +00:00
set -e
2025-11-28 21:20:34 +00:00
# --- KLEUREN DEFINITIES (Voor mooie output) ---
GREEN='\033[0;32m'
BLUE='\033[0;34m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m' # No Color
# --- PADEN AUTOMATISCH BEPALEN ---
# Dit is de magie: We kijken waar DIT script staat, en gaan 1 map omhoog.
# Hierdoor werkt het script altijd, ongeacht hoe je hoofdmap heet.
SCRIPT_PATH=$(readlink -f "$0")
SCRIPT_DIR=$(dirname "$SCRIPT_PATH")
REPO_DIR=$(dirname "$SCRIPT_DIR")
2025-11-28 20:01:41 +00:00
STACKS_DIR="$REPO_DIR/1. Docker-Stacks"
2025-11-28 21:20:34 +00:00
echo -e "${BLUE}==========================================${NC}"
echo -e "${BLUE}🚀 Start Docker Update Script - $(date)${NC}"
echo -e "${BLUE}==========================================${NC}"
2025-11-28 20:01:41 +00:00
2025-11-28 21:20:34 +00:00
# 1. GIT UPDATE
echo -e "${YELLOW}📥 Pullen van Git...${NC}"
echo -e " Locatie: $REPO_DIR"
2025-11-28 20:01:41 +00:00
cd "$REPO_DIR"
git pull origin main
2025-11-28 21:20:34 +00:00
# 2. CONTAINERS UPDATEN
echo -e "${YELLOW}🔄 Containers bijwerken...${NC}"
2025-11-28 20:01:41 +00:00
2025-11-28 21:20:34 +00:00
# Zoek alle mappen die een docker-compose.yml bevatten (max 2 diep in 1. Docker-Stacks)
2025-11-28 20:01:41 +00:00
find "$STACKS_DIR" -maxdepth 2 -name "docker-compose.yml" | while read composefile; do
dir=$(dirname "$composefile")
service_name=$(basename "$dir")
2025-11-28 21:20:34 +00:00
echo -e " 👉 Bezig met service: ${GREEN}$service_name${NC}"
2025-11-28 20:01:41 +00:00
cd "$dir"
2025-11-28 21:14:40 +00:00
# --- SPECIAAL VOOR TRAEFIK ---
2025-11-28 21:20:34 +00:00
# Traefik crasht als acme.json niet bestaat of verkeerde rechten heeft.
# Dit script repareert dat automatisch.
2025-11-28 21:14:40 +00:00
if [ "$service_name" == "traefik" ]; then
if [ ! -f "./data/acme.json" ]; then
2025-11-28 21:20:34 +00:00
echo -e " 🔨 ${YELLOW}Traefik: acme.json aanmaken en rechten (600) zetten...${NC}"
mkdir -p ./data
2025-11-28 21:14:40 +00:00
touch ./data/acme.json
chmod 600 ./data/acme.json
fi
fi
# -----------------------------
2025-11-28 20:01:41 +00:00
2025-11-28 21:20:34 +00:00
# Check of er een .env bestand is (informatief)
2025-11-28 20:01:41 +00:00
if [ -f .env ]; then
2025-11-28 21:14:40 +00:00
docker compose up -d --remove-orphans
2025-11-28 20:01:41 +00:00
else
2025-11-28 21:20:34 +00:00
echo -e " ⚠️ ${RED}Let op: Geen .env bestand gevonden (check je secrets)!${NC}"
# We proberen alsnog te starten, sommige containers hebben geen .env nodig
2025-11-28 21:14:40 +00:00
docker compose up -d --remove-orphans
2025-11-28 20:01:41 +00:00
fi
done
2025-11-28 21:20:34 +00:00
# 3. OPRUIMEN
echo -e "${YELLOW}🧹 Oude images opruimen...${NC}"
2025-11-28 20:01:41 +00:00
docker image prune -f
2025-11-28 21:20:34 +00:00
echo -e "${BLUE}==========================================${NC}"
echo -e "${GREEN}✅ Update compleet!${NC}"
echo -e "${BLUE}==========================================${NC}"