FROM python:3.12-slim WORKDIR /app COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt COPY app/ ./app/ ENV CONFIG_PATH=/config/config.yaml ENV LOG_LEVEL=INFO ENV PYTHONUNBUFFERED=1 # config.yaml is intentionally NOT copied into the image — it is bind # mounted at runtime (see docker-compose.yml) so it can be edited without # rebuilding this image. A container restart is enough to pick up changes. ENTRYPOINT ["python", "-m", "app.main"]