FROM python:3.11-slim

ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1

WORKDIR /app

# libpq-dev + gcc for psycopg2 build/adapters; keep the image lean.
RUN apt-get update && apt-get install -y --no-install-recommends \
    libpq-dev gcc \
    && rm -rf /var/lib/apt/lists/*

COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

COPY summarizer.py run_news_summarizer.py ./

# Security: run as a non-privileged user.
RUN useradd -m summarizer_user
USER summarizer_user

# Default: single pass (as the old k8s CronJob ran). The compose service
# overrides `command` to the scheduler loop (run_news_summarizer.py).
CMD ["python", "summarizer.py"]
