version: '3.8' services: exam_server: build: ./exam_server container_name: exam_server volumes: - ./exam_server:/app - ./data:/data - db_data:/app/db environment: - DEBUG=True - SECRET_KEY=dev-secret-key-change-in-production - ALLOWED_HOSTS=localhost,127.0.0.1,exam_server - CORS_ALLOWED_ORIGINS=http://localhost,http://localhost:4200 - INPUT_DIR=/data/input - ATTEMPTS_DIR=/data/attempts - OUTPUT_DIR=/data/output - PROGRESS_DIR=/data/progress - MANIFEST_FILE=/data/manifest.json expose: - "8000" networks: - exam_network exam_web: build: ./exam_web container_name: exam_web volumes: - ./exam_web:/app - /app/node_modules expose: - "4200" networks: - exam_network nginx: build: context: . dockerfile: Dockerfile.nginx container_name: exam_nginx ports: - "80:80" depends_on: - exam_server - exam_web networks: - exam_network volumes: db_data: networks: exam_network: driver: bridge