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 intel.py nous_client.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"]