Spaces:
Running
Running
| # Foresight app image — serves the frontend, the knowledge base, and the | |
| # per-student API. Targets Hugging Face Spaces (sdk: docker), but it's a plain | |
| # container and runs anywhere. | |
| FROM python:3.12-slim | |
| # Spaces run the container as uid 1000; matching it here keeps file ownership | |
| # sane and avoids running as root. | |
| RUN useradd --create-home --uid 1000 foresight | |
| WORKDIR /home/foresight/app | |
| ENV PYTHONUNBUFFERED=1 \ | |
| PYTHONDONTWRITEBYTECODE=1 \ | |
| PIP_NO_CACHE_DIR=1 \ | |
| HF_HOME=/home/foresight/.cache/huggingface | |
| # Dependencies first so code edits don't invalidate the layer. | |
| COPY requirements.txt ./ | |
| RUN pip install --no-cache-dir -r requirements.txt | |
| COPY server/ ./server/ | |
| COPY app/ ./app/ | |
| COPY knowledge-base/ ./knowledge-base/ | |
| RUN chown -R foresight:foresight /home/foresight | |
| USER foresight | |
| # 7860 is the port Spaces expects (see app_port in the Space README). | |
| EXPOSE 7860 | |
| CMD ["uvicorn", "server.app:app", "--host", "0.0.0.0", "--port", "7860"] | |