FROM python:3.12-slim WORKDIR /app # Hugging Face Spaces listens on 7860. # JSON vector store + local seed embeddings (fast cold start). ENV PORT=7860 \ PYTHONUNBUFFERED=1 \ APP_ENV=production \ DATABASE_URL=sqlite+aiosqlite:///./data/db/replyflow.db \ CHROMA_PATH=./data/chroma \ KNOWLEDGE_PATH=./data/knowledge \ USE_JSON_STORE=true \ SEED_LOCAL_EMBEDDINGS=true RUN apt-get update && apt-get install -y --no-install-recommends \ build-essential \ && rm -rf /var/lib/apt/lists/* COPY requirements.txt ./ RUN pip install --no-cache-dir -r requirements.txt COPY . . RUN mkdir -p /app/data/db /app/data/chroma /app/data/knowledge \ && python seed_kb.py \ && chmod -R 777 /app/data \ && useradd -m -u 1000 user \ && chown -R user:user /app USER user EXPOSE 7860 # Bind immediately; HF kills containers that do not open 7860. CMD ["sh", "-c", \ "uvicorn app.main:app --host 0.0.0.0 --port ${PORT:-7860}"]