Spaces:
Running
Running
Syed Arfan
Add Docker Compose setup with PostgreSQL, Redis, and Nginx; implement caching and database models
66da1e3
| services: | |
| postgres: | |
| image: postgres:15-alpine | |
| container_name: sentiment-api-postgres | |
| environment: | |
| POSTGRES_DB: sentiment | |
| POSTGRES_USER: user | |
| POSTGRES_PASSWORD: pass | |
| ports: | |
| - "5432:5432" | |
| volumes: | |
| - postgres_data:/var/lib/postgresql/data | |
| healthcheck: | |
| test: ["CMD-SHELL", "pg_isready -U user -d sentiment"] | |
| interval: 10s | |
| timeout: 5s | |
| retries: 5 | |
| redis: | |
| image: redis:7-alpine | |
| container_name: sentiment-api-redis | |
| ports: | |
| - "6379:6379" # Redis default port | |
| healthcheck: | |
| test: ["CMD", "redis-cli", "ping"] | |
| interval: 10s | |
| timeout: 3s | |
| retries: 5 | |
| command: redis-server --maxmemory 256mb --maxmemory-policy allkeys-lru | |
| nginx: | |
| image: nginx:alpine | |
| container_name: sentiment-api-nginx | |
| ports: | |
| - "80:80" | |
| volumes: | |
| - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro | |
| depends_on: | |
| - api | |
| api: | |
| build: . | |
| container_name: sentiment-api | |
| ports: | |
| - "8000:8000" | |
| environment: | |
| DATABASE_URL: postgresql://user:pass@postgres:5432/sentiment | |
| REDIS_URL: redis://redis:6379 # β ADD THIS LINE | |
| depends_on: | |
| postgres: | |
| condition: service_healthy | |
| redis: # β ADD THIS | |
| condition: service_healthy | |
| command: uvicorn src.main:app --host 0.0.0.0 --port 8000 | |
| volumes: | |
| postgres_data: |