# 3.13, because with 3.14 it requires gcc (wheels not available)
FROM docker.io/library/python:3.13-slim

# Set environment variables
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1

# Set the working directory in the container
WORKDIR /app

# Copy the requirements file into the container
COPY requirements.txt .

# Install dependencies using buildkit cache
RUN --mount=type=cache,target=/root/.cache/pip pip install -r requirements.txt

# Pre-download the embedding model into the image to avoid runtime downloads
RUN python -c "from fastembed import TextEmbedding; TextEmbedding(model_name='BAAI/bge-small-en-v1.5')"

# Copy the source code
COPY src/ ./src/

# Command to run the MCP server
CMD ["python", "src/server.py"]
