Sunstead trust scoring project
1# CyberCred scorer: thin read-API over the trust DuckDB (no torch/lightgbm needed —
2# fusion._gnn_winner()/_scorer() degrade to EigenTrust + the precomputed scores table).
3FROM python:3.12-slim
4WORKDIR /app
5RUN pip install --no-cache-dir \
6 "duckdb>=1.1" "numpy>=1.26" "scipy>=1.11" "fastapi>=0.115" \
7 "uvicorn>=0.30" "httpx>=0.27" "pydantic>=2.7" "anthropic>=0.40" "websockets>=12"
8COPY src/ /app/src/
9ENV PYTHONPATH=/app/src
10ENV DATA_ROOT=/data
11ENV DUCKDB_PATH=/data/trust.duckdb
12EXPOSE 8000
13# single worker: DuckDB is single-writer and ensure_schema() opens RW once at startup
14CMD ["uvicorn", "trust.api:app", "--host", "0.0.0.0", "--port", "8000", "--workers", "1"]