| version: '3.8' | |
| services: | |
| postgres: | |
| image: postgres:15-alpine | |
| environment: | |
| POSTGRES_USER: user | |
| POSTGRES_PASSWORD: password | |
| POSTGRES_DB: edtech | |
| ports: | |
| - "5432:5432" | |
| volumes: | |
| - postgres_data:/var/lib/postgresql/data | |
| healthcheck: | |
| test: ["CMD-SHELL", "pg_isready -U user -d edtech"] | |
| interval: 5s | |
| timeout: 5s | |
| retries: 10 | |
| redis: | |
| image: redis:alpine | |
| ports: | |
| - "6379:6379" | |
| volumes: | |
| - redis_data:/data | |
| healthcheck: | |
| test: ["CMD", "redis-cli", "ping"] | |
| interval: 5s | |
| timeout: 3s | |
| retries: 10 | |
| api: | |
| build: | |
| context: . | |
| dockerfile: Dockerfile | |
| ports: | |
| - "7860:7860" | |
| environment: | |
| SERVICES: api | |
| PORT: "7860" | |
| DATABASE_URL: postgresql://user:password@postgres:5432/edtech?schema=public | |
| REDIS_URL: redis://redis:6379 | |
| env_file: | |
| - .env | |
| depends_on: | |
| postgres: | |
| condition: service_healthy | |
| redis: | |
| condition: service_healthy | |
| restart: unless-stopped | |
| whatsapp-worker: | |
| build: | |
| context: . | |
| dockerfile: Dockerfile | |
| ports: | |
| - "8082:8082" | |
| environment: | |
| SERVICES: worker | |
| PORT: "8082" | |
| DATABASE_URL: postgresql://user:password@postgres:5432/edtech?schema=public | |
| REDIS_URL: redis://redis:6379 | |
| RAILWAY_INTERNAL_URL: http://api:7860 | |
| env_file: | |
| - .env | |
| depends_on: | |
| postgres: | |
| condition: service_healthy | |
| redis: | |
| condition: service_healthy | |
| api: | |
| condition: service_started | |
| restart: unless-stopped | |
| volumes: | |
| postgres_data: | |
| redis_data: | |