sentinel-fraud-detection / docker-compose.yml
harshit-temkar7-ds
Initial commit - Fraud Detection System
7f00eaa
Raw History Blame Contribute Delete
1.98 kB
version: "3.8"
services:
# ── Zookeeper (required for Kafka) ────────────────────────────────────────
zookeeper:
image: confluentinc/cp-zookeeper:7.5.0
container_name: fraud_zookeeper
environment:
ZOOKEEPER_CLIENT_PORT: 2181
ZOOKEEPER_TICK_TIME: 2000
ports:
- "2181:2181"
# ── Kafka Broker ──────────────────────────────────────────────────────────
kafka:
image: confluentinc/cp-kafka:7.5.0
container_name: fraud_kafka
depends_on:
- zookeeper
ports:
- "9092:9092"
environment:
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
KAFKA_AUTO_CREATE_TOPICS_ENABLE: "true"
# ── FastAPI Scoring API ───────────────────────────────────────────────────
api:
build:
context: .
dockerfile: Dockerfile.api
container_name: fraud_api
ports:
- "8000:8000"
volumes:
- ./model:/app/model # mount trained model artifacts
environment:
MODEL_DIR: /app/model
depends_on:
- kafka
restart: unless-stopped
# ── React Frontend ────────────────────────────────────────────────────────
frontend:
build:
context: .
dockerfile: Dockerfile.frontend
args:
REACT_APP_API_URL: http://localhost:8000
container_name: fraud_frontend
ports:
- "3000:3000"
depends_on:
- api
restart: unless-stopped
networks:
default:
name: fraud_network