diff --git a/docker-compose.yml b/docker-compose.yml index 61cbed2..47193fa 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,39 +1,37 @@ services: - # --- FRONTEND --- + # --- FRONTEND (SSR) --- bizmatch-ssr: build: - context: . # Pfad zum Angular Ordner + context: . dockerfile: bizmatch/Dockerfile - image: bizmatch-ssr container_name: bizmatch-ssr - extra_hosts: - - "localhost:host-gateway" restart: unless-stopped - ports: - - '4200:4000' # Extern 4200 -> Intern 4000 (SSR) - environment: - NODE_ENV: production + # In der Produktion brauchen wir keine Ports nach außen (Caddy regelt das intern) + networks: + - bizmatch volumes: - ./bizmatch-server/pictures:/app/pictures + environment: + NODE_ENV: production + # WICHTIG: Die URL, unter der das SSR-Frontend die API intern erreicht + API_INTERNAL_URL: http://bizmatch-app:3001 # --- BACKEND --- app: build: - context: ./bizmatch-server # Pfad zum NestJS Ordner + context: ./bizmatch-server dockerfile: Dockerfile - image: bizmatch-server:latest container_name: bizmatch-app restart: unless-stopped - ports: - - '3001:3001' env_file: - - ./bizmatch-server/.env # Pfad zur .env Datei + - ./bizmatch-server/.env depends_on: - postgres networks: - bizmatch - # WICHTIG: Kein Volume Mapping für node_modules im Prod-Modus! - # Das Image bringt alles fertig mit. + volumes: + # Das Backend braucht ebenfalls Zugriff auf den Bilder-Ordner zum Speichern! + - ./bizmatch-server/pictures:/app/dist/pictures # --- DATABASE --- postgres: @@ -44,19 +42,12 @@ services: - bizmatch-db-data:/var/lib/postgresql/data env_file: - ./bizmatch-server/.env - environment: - POSTGRES_DB: ${POSTGRES_DB} - POSTGRES_USER: ${POSTGRES_USER} - POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} - ports: - - '5434:5432' networks: - bizmatch volumes: bizmatch-db-data: - driver: local networks: bizmatch: - external: false # Oder true, falls du es manuell erstellt hast \ No newline at end of file + external: true # Wir nutzen das gleiche Netzwerk wie für Caddy \ No newline at end of file