# Dockerfile for MCP server
# Uses Python 3.12 slim image, installs the application and its dependencies

FROM python:3.12-slim AS base

# Install system dependencies (if any)
RUN apt-get update && apt-get install -y --no-install-recommends \
    build-essential \
    gcc \
    && rm -rf /var/lib/apt/lists/*

# Create a non-root user
ARG USERNAME=appuser
ARG UID=1000
RUN adduser --uid ${UID} --disabled-password --gecos "" ${USERNAME}

# Set working directory
WORKDIR /app

# Copy only requirements first for caching layers
COPY pyproject.toml poetry.lock* /app/ || true

# Install poetry (or pip) and dependencies
RUN pip install --upgrade pip setuptools && \
    pip install poetry && \
    poetry config virtualenvs.create false && \
    if [ -f poetry.lock ]; then poetry install --no-dev; else pip install .; fi

# Copy the rest of the source code
COPY . /app

# Switch to non-root user
USER ${USERNAME}

# Expose the service port (adjust if needed)
EXPOSE 8000

# Default command – run the FastAPI server (adjust entrypoint as needed)
CMD ["uvicorn", "mcp_server.main:app", "--host", "0.0.0.0", "--port", "8000"]
