Files
aerzte/docker-compose.prod.yml
T
2026-06-21 17:29:39 +02:00

61 lines
1.6 KiB
YAML

# Produktions-Setup für den Serverbetrieb.
# Starten mit: docker compose -f docker-compose.prod.yml up -d --build
#
# Benötigt eine .env-Datei (siehe .env.example) mit:
# MONGO_ROOT_USER, MONGO_ROOT_PASSWD und optional FRONTEND_PORT.
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:
build:
context: ./backend
dockerfile: Dockerfile.prod
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.
# Bei Bedarf hier die öffentliche Frontend-URL eintragen.
- CORS_ORIGIN=${CORS_ORIGIN:-http://localhost:5173}
depends_on:
- mongodb
networks:
- app-network
frontend:
build:
context: ./frontend
dockerfile: Dockerfile.prod
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