version: "3.9" services: redis: image: redis:7-alpine ports: - "6379:6379" restart: unless-stopped postgres: image: postgres:16 environment: POSTGRES_DB: data_cleaning POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres ports: - "5432:5432" volumes: - postgres_data:/var/lib/postgresql/data restart: unless-stopped fastapi: build: context: . dockerfile: Dockerfile command: uvicorn backend.app:app --host 0.0.0.0 --port 8000 --reload environment: DATABASE_URL: postgresql+psycopg2://postgres:postgres@postgres:5432/data_cleaning REDIS_URL: redis://redis:6379/0 ENVIRONMENT: dev LOG_LEVEL: INFO ports: - "8000:8000" depends_on: - redis - postgres restart: unless-stopped celery: build: context: . dockerfile: Dockerfile command: celery -A backend.tasks.cleaning_tasks worker --loglevel=info environment: DATABASE_URL: postgresql+psycopg2://postgres:postgres@postgres:5432/data_cleaning REDIS_URL: redis://redis:6379/0 ENVIRONMENT: dev LOG_LEVEL: INFO depends_on: - redis - postgres restart: unless-stopped volumes: postgres_data: