From 388475fafc068c088cac5bda307f3fefa6af9ed7 Mon Sep 17 00:00:00 2001 From: rorapp Date: Fri, 7 Feb 2025 12:22:53 +0100 Subject: [PATCH] add volume to database to persist data of local development e.g. users --- apps/docker-compose.overwrite.yml | 2 ++ apps/docker-compose.prod.yml | 38 ++++++++++++++++++++++++++++++- scripts/deploy-traefik.sh | 22 ++++++++++++++++++ 3 files changed, 61 insertions(+), 1 deletion(-) create mode 100755 scripts/deploy-traefik.sh diff --git a/apps/docker-compose.overwrite.yml b/apps/docker-compose.overwrite.yml index df15d4a..8d07011 100644 --- a/apps/docker-compose.overwrite.yml +++ b/apps/docker-compose.overwrite.yml @@ -19,6 +19,8 @@ services: - MARIADB_DATABASE=mindboost - MARIADB_PASSWORD=mindboost - MARIADB_ROOT_PASSWORD=root-mindboost + volumes: + - ../volumes/daten/mariadb:/var/lib/mysql networks: - backend frontend: diff --git a/apps/docker-compose.prod.yml b/apps/docker-compose.prod.yml index 62ce5e3..e33a4ee 100644 --- a/apps/docker-compose.prod.yml +++ b/apps/docker-compose.prod.yml @@ -1,4 +1,13 @@ -# Stack for Mindboost Webapp +## +## DIESES COMPOSE FILE IST FÜR DIE LOKALE ENTWICKLUNG MITTELS DOCKER +## +## Der Inhalt von frontend und von backend wird über ein volume eingebunden, dass +## bedeutet Änderungen innerhalb der Projektordner ./frontend/src und ./backend/src +## Ändern direkt die Werte innerhalb des Containers wie z.B. das Austauschen einer Grafik. +## +## Datenbank ebenfalls lokal und KEIN reverse-Proxy (traefik) +## Image der DB ist auf ARM Archtektur (Apple Silicon) ausgelegt +## services: prod-mariadb: @@ -64,6 +73,33 @@ services: - ${TRAEFIK_NETWORK} depends_on: - prod-mariadb + # Traefik-Crowdsec Stack + crowdsec: + extends: + file: ./proxy/docker-compose.yml + service: crowdsec + networks: + - ${TRAEFIK_NETWORK} + + traefik: + extends: + file: ./proxy/docker-compose.yml + service: traefik + networks: + - ${TRAEFIK_NETWORK} + depends_on: + - crowdsec + + traefik_crowdsec_bouncer: + extends: + file: ./proxy/docker-compose.yml + service: traefik_crowdsec_bouncer + networks: + - ${TRAEFIK_NETWORK} + depends_on: + - crowdsec + - traefik + networks: prod-backend: external: false diff --git a/scripts/deploy-traefik.sh b/scripts/deploy-traefik.sh new file mode 100755 index 0000000..78a95b2 --- /dev/null +++ b/scripts/deploy-traefik.sh @@ -0,0 +1,22 @@ +#!/bin/bash +set -e + +echo "Prüfe, ob Traefik läuft..." + +if ! docker ps --format '{{.Names}}' | grep -q 'traefik'; then + echo "Traefik läuft nicht." + read -p "Möchtest du die lokale Version zum Debuggen (docker-compose.overwrite.yml) starten? (y/n): " answer + if [[ "$answer" =~ ^[Yy]$ ]]; then + echo "Starte lokale Version..." + docker compose -f ../apps/docker-compose.overwrite.yml up -d + else + echo "Deployment abgebrochen." + exit 1 + fi +else + echo "Traefik läuft." + echo "Starte Deployment mit docker-compose.prod.yml..." + docker compose -f ../apps/docker-compose.prod.yml up -d +fi + +echo "Deployment abgeschlossen."