FROM python:3.12-slim
ENV PYTHONDONTWRITEBYTECODE=1 PYTHONUNBUFFERED=1 AI_STUDIO_DATA=/studio/data APP_ENV=production
WORKDIR /studio
RUN apt-get update \
  && apt-get install -y --no-install-recommends fonts-dejavu-core \
  && rm -rf /var/lib/apt/lists/* \
  && groupadd --gid 10001 studio \
  && useradd --uid 10001 --gid 10001 --home-dir /studio --no-create-home studio
COPY requirements.txt /studio/requirements.txt
RUN pip install --no-cache-dir -r /studio/requirements.txt
COPY --chown=studio:studio app/ /studio/app/
RUN mkdir -p /studio/data && chown -R studio:studio /studio/data
USER studio
EXPOSE 8000
# One process ONLY: the SQLite queue is an in-process single-worker scheduler.
CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000", "--workers", "1", "--proxy-headers", "--forwarded-allow-ips", "*"]
