## ## 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: image: mariadb:latest container_name: prod-mariadb hostname: mariadb command: --bind-address=0.0.0.0 env_file: - ../config/.env.db networks: - ${BACKEND_NETWORK} volumes: - ../volumes/daten/mariadb:/var/lib/mysql prod-redis: image: redis:alpine container_name: prod-redis hostname: redis networks: - ${BACKEND_NETWORK} restart: unless-stopped command: redis-server --appendonly yes --requirepass laravel-redis-passwort # Redis Passwort eingeben volumes: - ../volumes/daten/redis:/data prod-frontend: build: context: ./frontend/src dockerfile: Dockerfile container_name: prod-frontend networks: - ${BACKEND_NETWORK} - ${TRAEFIK_NETWORK} env_file: - ../config/.env.frontend - ../config/.env.traefik labels: - "traefik.enable=${TRAEFIK_ENABLE}" - "traefik.http.routers.prod-frontend.entrypoints=${TRAEFIK_ROUTER_FRONTEND_ENTRYPOINT}" - "traefik.http.routers.prod-frontend.rule=${TRAEFIK_ROUTER_FRONTEND_RULE}" - "traefik.http.routers.prod-frontend.tls=${TRAEFIK_ROUTER_FRONTEND_TLS}" - "traefik.http.routers.prod-frontend.tls.certresolver=${TRAEFIK_ROUTER_FRONTEND_CERTRESOLVER}" - "traefik.http.routers.prod-frontend.tls.domains[0].main=${TRAEFIK_ROUTER_FRONTEND_TLS_DOMAIN_MAIN}" - "traefik.http.routers.prod-frontend.tls.domains[0].sans=${TRAEFIK_ROUTER_FRONTEND_TLS_DOMAIN_SANS}" - "traefik.http.services.prod-frontend.loadbalancer.server.port=${TRAEFIK_SERVICE_FRONTEND_PORT}" - "traefik.docker.network=${TRAEFIK_NETWORK}" prod-backend: build: context: ./backend/src dockerfile: Dockerfile env_file: - ../config/.env.backend - ../config/.env.traefik labels: - "traefik.enable=${TRAEFIK_ENABLE}" - "traefik.http.routers.prod-backend.entrypoints=${TRAEFIK_ROUTER_BACKEND_ENTRYPOINT}" - "traefik.http.routers.prod-backend.rule=${TRAEFIK_ROUTER_BACKEND_RULE}" - "traefik.http.routers.prod-backend.tls=${TRAEFIK_ROUTER_BACKEND_TLS}" - "traefik.http.routers.prod-backend.tls.certresolver=${TRAEFIK_ROUTER_BACKEND_CERTRESOLVER}" - "traefik.http.routers.prod-backend.tls.domains[0].main=${TRAEFIK_ROUTER_BACKEND_TLS_DOMAIN_MAIN}" - "traefik.http.services.prod-backend.loadbalancer.server.port=${TRAEFIK_SERVICE_BACKEND_PORT}" - "traefik.docker.network=${TRAEFIK_NETWORK}" networks: - ${BACKEND_NETWORK} - ${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 proxy: external: true