services: # PostgreSQL database postgres: image: postgres:16-alpine container_name: fidelity_postgres environment: POSTGRES_USER: fidelity POSTGRES_PASSWORD: fidelity123 POSTGRES_DB: fidelitytracker ports: - "5432:5432" volumes: - postgres_data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U fidelity -d fidelitytracker"] interval: 10s timeout: 5s retries: 5 networks: - fidelity_network # FastAPI backend backend: build: context: ./backend dockerfile: Dockerfile container_name: fidelity_backend depends_on: postgres: condition: service_healthy environment: POSTGRES_HOST: postgres POSTGRES_PORT: 5432 POSTGRES_DB: fidelitytracker POSTGRES_USER: fidelity POSTGRES_PASSWORD: fidelity123 IMPORT_DIR: /app/imports ports: - "8000:8000" volumes: - ./imports:/app/imports - ./backend:/app networks: - fidelity_network restart: unless-stopped # React frontend (will be added) frontend: build: context: ./frontend dockerfile: Dockerfile container_name: fidelity_frontend depends_on: - backend ports: - "3000:80" networks: - fidelity_network restart: unless-stopped volumes: postgres_data: driver: local networks: fidelity_network: driver: bridge