FROM python:3.12-slim

WORKDIR /app

# Install system dependencies required for psycopg binary
RUN apt-get update && apt-get install -y --no-install-recommends \
    libpq5 \
    && rm -rf /var/lib/apt/lists/*

# Copy dependency files first for layer caching
COPY pyproject.toml uv.lock ./

# Install uv for fast dependency management
RUN pip install --no-cache-dir uv

# Install runtime dependencies (no dev extras)
RUN uv pip install --system --no-cache-dir -e .

# Copy application source
COPY src/ ./src/

# Create data directory for staging store
RUN mkdir -p data/staging

# Non-root user for security
RUN adduser --disabled-password --gecos "" appuser && \
    chown -R appuser:appuser /app
USER appuser

EXPOSE 8000

CMD ["uvicorn", "release_agent.main:app", "--host", "0.0.0.0", "--port", "8000"]
