#!/bin/bash # Pfad zur .env.all Datei ENV_FILE="../../env/.env.all" # Funktion zum Überprüfen der Existenz einer Datei check_file_exists() { if [ ! -f "$1" ]; then echo "Fehler: Die Datei $1 existiert nicht." return 1 fi } # Überprüfe die Existenz von .env.all check_file_exists "../../env/.env.all" # Funktion zum Auslesen von Variablen aus der .env.all Datei get_env_var() { grep "^$1=" "$ENV_FILE" | cut -d '=' -f2 } # Auslesen der INFRASTRUCTURE und ENVIRONMENT Variablen INFRASTRUCTURE=$(get_env_var "INFRASTRUCTURE_LABEL") ENVIRONMENT=$(get_env_var "ENVIRONMENT") # Load environment variables from the .env files set -o allexport source ../../env/.env.all source ../../env/${ENVIRONMENT:-development}/.env.administration set +o allexport # Liste Stacks STACKS=("administration") # Liste aller Environments ENVIRONMENTS=("development" "staging" "production") # Überprüfe die Existenz aller Stack-spezifischen .env Dateien missing_files=0 for stack in "${STACKS[@]}"; do env_file="../../env/${ENVIRONMENT:-development}/.env.${stack}" if ! check_file_exists "$env_file"; then missing_files=$((missing_files + 1)) fi done if [ $missing_files -eq 0 ]; then echo "Alle erforderlichen .env Dateien für das ${ENVIRONMENT:-development}-Environment sind vorhanden." else echo "Warnung: $missing_files .env Datei(en) fehlen. Einige Stacks könnten nicht korrekt funktionieren." fi # Überprüfe die Existenz aller Stack-spezifischen .env Dateien für alle Environments for env in "${ENVIRONMENTS[@]}"; do if [ "$env" != "$ENVIRONMENT" ]; then for stack in "${STACKS[@]}"; do env_file="../../env/${env}/.env.${stack}" if ! check_file_exists "$env_file"; then echo "Warnung: Die Datei $env_file fehlt für das Environment $env." fi done fi done # Ausgabe der Variablen echo " " echo "Deploying to:" echo "INFRASTRUCTURE: ${INFRASTRUCTURE:-Not set}" echo "ENVIRONMENT: ${ENVIRONMENT:-Not set}" echo "-----------------------------------" # Ausführen des Docker Compose Befehls docker compose -f ../apps/docker-compose.all.yml --env-file ../../env/.env.all --env-file ../../env/${ENVIRONMENT:-development}/.env.proxy --profile administration up --remove-orphans