services: fyp-django-dev: container_name: fyp-django-dev build: context: ../../ dockerfile: compose/dev/django/Dockerfile env_file: - ../../.env volumes: - ../../:/app ports: - '0.0.0.0:8000:8000' depends_on: fyp-postgres-dev: condition: service_healthy fyp-node-dev: condition: service_started fyp-node-dev: container_name: fyp-node-dev build: context: ../../ dockerfile: compose/dev/node/Dockerfile environment: NODE_ENV: development CHOKIDAR_USEPOLLING: 'true' stdin_open: true volumes: - ../../src:/app/src:delegated - ../../index.html:/app/index.html:delegated - ../../vite.config.ts:/app/vite.config.ts:delegated - ../../tsconfig.json:/app/tsconfig.json:delegated - ../../build:/app/build:delegated - ../../package.json:/app/package.json:delegated - ../../package-lock.json:/app/package-lock.json:delegated - /app/node_modules ports: - '0.0.0.0:5173:5173' fyp-postgres-dev: container_name: fyp-postgres-dev image: postgres:15-alpine env_file: - ../../.env environment: POSTGRES_HOST_AUTH_METHOD: trust volumes: - fyp_postgres_data:/var/lib/postgresql/data ports: - '0.0.0.0:5432:5432' healthcheck: test: ['CMD-SHELL', 'pg_isready -h 127.0.0.1 -p 5432 -U ${POSTGRES_USER} -d ${POSTGRES_DB}'] interval: 5s timeout: 3s retries: 5 fyp-redis-dev: container_name: fyp-redis-dev image: redis:7-alpine ports: - '0.0.0.0:6379:6379' volumes: - fyp_redis_data:/data healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 5s timeout: 3s retries: 5 fyp-celery-dev: container_name: fyp-celery-dev build: context: ../../ dockerfile: compose/dev/celery/Dockerfile env_file: - ../../.env volumes: - ../../:/app depends_on: fyp-redis-dev: condition: service_healthy fyp-postgres-dev: condition: service_healthy fyp-mcp-dev: container_name: fyp-mcp-dev build: context: ../../ dockerfile: compose/dev/mcp/Dockerfile env_file: - ../../.env volumes: - ../../:/app - ../../notebooks/build:/app/notebooks/build deploy: mode: replicated replicas: 1 resources: reservations: devices: - driver: nvidia count: all capabilities: [gpu] environment: - NVIDIA_VISIBLE_DEVICES=all ports: - "0.0.0.0:8001:8001" depends_on: fyp-redis-dev: condition: service_healthy fyp-postgres-dev: condition: service_healthy volumes: fyp_postgres_data: fyp_redis_data: