math-solver / Dockerfile
Cuong2004
Deploy API from GitHub Actions
395651c
# Visual Math Solver — API container (Python 3.11 + Manim + OCR stack)
FROM python:3.11-slim-bookworm
ENV PYTHONUNBUFFERED=1 \
PYTHONDONTWRITEBYTECODE=1 \
PIP_NO_CACHE_DIR=1 \
PIP_ROOT_USER_ACTION=ignore \
NO_ALBUMENTATIONS_UPDATE=1 \
OMP_NUM_THREADS=1 \
MKL_NUM_THREADS=1 \
OPENBLAS_NUM_THREADS=1
WORKDIR /app
ENV PYTHONPATH=/app
# Runtime + *-dev: Manim/pycairo need pkg-config + cairo headers; libpango1.0-dev covers PangoCairo on Bookworm (no libpangocairo-*-dev package).
RUN apt-get update && apt-get install -y --no-install-recommends \
ffmpeg \
pkg-config \
cmake \
libcairo2 \
libcairo2-dev \
libpango-1.0-0 \
libpango1.0-dev \
libpangocairo-1.0-0 \
libgdk-pixbuf-2.0-0 \
libffi-dev \
python3-dev \
texlive-latex-base \
texlive-fonts-recommended \
texlive-latex-extra \
build-essential \
&& rm -rf /var/lib/apt/lists/*
COPY requirements.txt .
RUN pip install --upgrade pip setuptools wheel \
&& pip install -r requirements.txt
COPY . .
# Bake model weights and agent init into the image (YOLO, PaddleOCR, Pix2Tex, etc.)
RUN python scripts/prewarm_models.py
# Hugging Face Spaces defaults to 7860; docker-compose can set PORT=8000
ENV PORT=7860
EXPOSE 7860
CMD ["sh", "-c", "exec uvicorn app.main:app --host 0.0.0.0 --port ${PORT}"]