# Produktions-Setup mit vorgebauten Images aus der Registry docker.citysensor.de. # Geeignet für Stack-Manager wie dockhand/Dockge, wo nur die Compose-Datei # im Stack-Verzeichnis liegt. # # 1) Images bauen und in die Registry pushen (im Projektverzeichnis mit Quellcode): # docker build -t docker.citysensor.de/aerzte-backend:latest -f ./backend/Dockerfile.prod ./backend # docker build -t docker.citysensor.de/aerzte-frontend:latest -f ./frontend/Dockerfile.prod ./frontend # docker push docker.citysensor.de/aerzte-backend:latest # docker push docker.citysensor.de/aerzte-frontend:latest # # 2) Diese Datei (+ .env) ins Stack-Verzeichnis legen und starten: # docker compose pull && docker compose up -d # # Benötigt eine .env-Datei (siehe .env.example) mit: # MONGO_ROOT_USER, MONGO_ROOT_PASSWD und optional FRONTEND_PORT, IMAGE_TAG. services: mongodb: image: mongo:latest container_name: mongodb restart: unless-stopped # Kein Host-Port: MongoDB ist nur im internen Docker-Netz erreichbar environment: MONGO_INITDB_ROOT_USERNAME: ${MONGO_ROOT_USER} MONGO_INITDB_ROOT_PASSWORD: ${MONGO_ROOT_PASSWD} volumes: - mongodb_data:/data/db - mongodb_config:/data/configdb networks: - app-network backend: image: docker.citysensor.de/aerzte-backend:${IMAGE_TAG:-latest} container_name: backend restart: unless-stopped # Kein Host-Port: Das Backend wird nur intern über nginx (Frontend) angesprochen environment: - PORT=3001 - NODE_ENV=production - MONGO_URI=mongodb://${MONGO_ROOT_USER}:${MONGO_ROOT_PASSWD}@mongodb:27017/appointmentsdb?authSource=admin # Frontend läuft über denselben Host (nginx-Proxy) -> kein Cross-Origin nötig. - CORS_ORIGIN=${CORS_ORIGIN:-http://localhost:5173} depends_on: - mongodb networks: - app-network frontend: image: docker.citysensor.de/aerzte-frontend:${IMAGE_TAG:-latest} container_name: frontend restart: unless-stopped ports: - "${FRONTEND_PORT:-80}:80" depends_on: - backend networks: - app-network volumes: mongodb_data: mongodb_config: networks: app-network: driver: bridge