Spaces:
Running
Running
| version: '3.8' | |
| services: | |
| api: | |
| build: . | |
| container_name: mathminds_api | |
| ports: | |
| - "8000:8000" | |
| env_file: | |
| - .env | |
| environment: | |
| - REDIS_URL=redis://redis:6379/0 | |
| - MONGO_URI=mongodb://mongo:27017/mathminds | |
| - ENV=production | |
| depends_on: | |
| redis: | |
| condition: service_healthy | |
| mongo: | |
| condition: service_healthy | |
| networks: | |
| - mathminds_net | |
| restart: unless-stopped | |
| healthcheck: | |
| test: [ "CMD", "curl", "-f", "http://localhost:8000/health" ] | |
| interval: 30s | |
| timeout: 10s | |
| retries: 3 | |
| start_period: 10s | |
| worker: | |
| build: . | |
| container_name: mathminds_worker | |
| command: celery -A app.worker.celery_app worker --loglevel=info --pool=solo | |
| env_file: | |
| - .env | |
| environment: | |
| - REDIS_URL=redis://redis:6379/0 | |
| - MONGO_URI=mongodb://mongo:27017/mathminds | |
| - ENV=production | |
| depends_on: | |
| redis: | |
| condition: service_healthy | |
| mongo: | |
| condition: service_healthy | |
| networks: | |
| - mathminds_net | |
| restart: unless-stopped | |
| frontend: | |
| build: | |
| context: . | |
| dockerfile: frontend/Dockerfile | |
| container_name: mathminds_frontend | |
| ports: | |
| - "8501:8501" | |
| env_file: | |
| - .env | |
| environment: | |
| - BACKEND_URL=http://api:8000 | |
| depends_on: | |
| api: | |
| condition: service_healthy | |
| networks: | |
| - mathminds_net | |
| restart: unless-stopped | |
| healthcheck: | |
| test: [ "CMD", "curl", "-f", "http://localhost:8501/_stcore/health" ] | |
| interval: 30s | |
| timeout: 10s | |
| retries: 3 | |
| start_period: 10s | |
| redis: | |
| image: redis:alpine | |
| container_name: mathminds_redis | |
| ports: | |
| - "6379:6379" | |
| volumes: | |
| - redis_data:/data | |
| networks: | |
| - mathminds_net | |
| restart: unless-stopped | |
| healthcheck: | |
| test: [ "CMD", "redis-cli", "ping" ] | |
| interval: 10s | |
| timeout: 5s | |
| retries: 5 | |
| mongo: | |
| image: mongo:latest | |
| container_name: mathminds_mongo | |
| ports: | |
| - "27017:27017" | |
| volumes: | |
| - mongo_data:/data/db | |
| networks: | |
| - mathminds_net | |
| restart: unless-stopped | |
| healthcheck: | |
| test: [ "CMD", "mongosh", "--eval", "db.adminCommand('ping')" ] | |
| interval: 10s | |
| timeout: 5s | |
| retries: 5 | |
| n8n: | |
| image: n8nio/n8n:latest | |
| container_name: mathminds_n8n | |
| ports: | |
| - "5678:5678" | |
| environment: | |
| - N8N_HOST=localhost | |
| - N8N_PORT=5678 | |
| - N8N_PROTOCOL=http | |
| - NODE_ENV=production | |
| - WEBHOOK_URL=http://localhost:5678/ | |
| volumes: | |
| - n8n_data:/home/node/.n8n | |
| networks: | |
| - mathminds_net | |
| restart: unless-stopped | |
| networks: | |
| mathminds_net: | |
| driver: bridge | |
| volumes: | |
| redis_data: | |
| mongo_data: | |
| n8n_data: | |