FROM python:3.12-slim
ENV PYTHONUNBUFFERED=1 DATA_DIR=/data PORT=8000
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
RUN useradd -m app && mkdir -p /data && chown app /data
USER app
VOLUME /data
EXPOSE 8000
# --preload so the app starts once (and creates its database) before the workers fork
CMD ["gunicorn", "--preload", "--workers", "2", "--bind", "0.0.0.0:8000", "app:app"]
