Erste Compose Files und Scripte zum deployen. Lokal wird mit docker-compose.overwrite.yml gestartet

This commit is contained in:
2025-02-07 02:13:26 +01:00
parent 1c5d9359ff
commit 2dbc359bd2
10 changed files with 240 additions and 1 deletions

0
apps/README.md Normal file
View File

View File

@@ -0,0 +1,63 @@
##
## 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:
mariadb:
image: mariadb:latest
container_name: local_mariadb
command: --bind-address=0.0.0.0
environment:
- ALLOW_EMPTY_PASSWORD
- MARIADB_USER=mindboost
- MARIADB_DATABASE=mindboost
- MARIADB_PASSWORD=mindboost
- MARIADB_ROOT_PASSWORD=root-mindboost
networks:
- backend
frontend:
build:
context: ./frontend/src
dockerfile: Dockerfile.dev
container_name: local_frontend
volumes:
- ./frontend/src:/app
- /app/node_modules
ports:
- "3000:3000"
networks:
- backend
environment:
NODE_ENV: development
backend:
build:
context: ./backend/src
dockerfile: Dockerfile.dev
container_name: local_backend
ports:
- "8000:8000"
- "5173:5173"
volumes:
- ./backend/src:/var/www
networks:
- backend
depends_on:
- mariadb
adminer:
image: adminer
container_name: local_adminer
restart: always
ports:
- 8080:8080
networks:
- backend
networks:
backend:
external: false

View File

@@ -0,0 +1,71 @@
# Stack for Mindboost Webapp
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
networks:
prod-backend:
external: false
proxy:
external: true