diff --git a/fraud_service/Dockerfile b/fraud_service/Dockerfile new file mode 100644 index 0000000..8ad6c65 --- /dev/null +++ b/fraud_service/Dockerfile @@ -0,0 +1,27 @@ +FROM python:3.10-slim + +ENV PYTHONDONTWRITEBYTECODE=1 \ + PYTHONUNBUFFERED=1 + +WORKDIR /app + +RUN apt-get update && apt-get install -y --no-install-recommends \ + build-essential \ + libpq-dev \ + && rm -rf /var/lib/apt/lists/* + +COPY services/fraud_service/requirements.txt /app/requirements.txt +RUN pip install --no-cache-dir -r /app/requirements.txt + +COPY services/fraud_service/app /app/app + +EXPOSE 8000 + +ENV KAFKA_BOOTSTRAP_SERVERS=kafka:9092 \ + KAFKA_TOPIC=transactions \ + POSTGRES_URI=postgresql+psycopg2://admin:admin@postgres:5432/frauddb \ + MLFLOW_TRACKING_URI=http://mlflow:5000 \ + MLFLOW_MODEL_NAME=fraud_detector \ + MLFLOW_MODEL_STAGE=Production + +CMD uvicorn app.main:app --host 0.0.0.0 --port 8000 diff --git a/fraud_service/requirement.txt b/fraud_service/requirement.txt new file mode 100644 index 0000000..0318886 --- /dev/null +++ b/fraud_service/requirement.txt @@ -0,0 +1,12 @@ +fastapi==0.111.0 +uvicorn[standard]==0.30.0 +kafka-python==2.0.2 +mlflow==2.14.1 +psycopg2-binary==2.9.9 +SQLAlchemy==2.0.30 +pydantic==2.7.1 +scikit-learn==1.4.2 +numpy==1.26.4 +python-dotenv==1.0.1 + +