FROM pytorch/pytorch:2.5.1-cuda12.4-cudnn9-devel # System deps # - libcairo2 is required by cairosvg # - ninja-build / build-essential are commonly needed for compiling flash-attn # - libaio-dev and the CUDA compiler are required by some training/inference deps RUN apt-get update && apt-get install -y --no-install-recommends \ git \ build-essential \ ninja-build \ pkg-config \ libcairo2 \ libcairo2-dev \ libglib2.0-0 \ libsm6 \ libxext6 \ libxrender1 \ libaio-dev \ cuda-compiler-12-4 \ && rm -rf /var/lib/apt/lists/* WORKDIR /app # Cache buster - change this to force rebuild ENV CACHE_BUST=2026-02-27-06-46 # Install StarVector from GitHub # Pin to main branch by default; you can pin a commit for reproducibility. RUN git clone --depth 1 https://github.com/joanrod/star-vector.git /app/star-vector # Install python dependencies # The upstream package depends on flash_attn, which tries to import torch during build. # Disable build isolation so torch from the base image is visible. ENV PIP_NO_BUILD_ISOLATION=1 # Install dependencies - don't upgrade setuptools to avoid breaking pkg_resources RUN pip install --upgrade pip wheel \ # pycairo (pulled in via svglib/rlpycairo) uses meson-python as its PEP517 backend && pip install meson meson-python \ && pip install flash-attn==2.7.3 --no-build-isolation \ && pip install -e /app/star-vector --no-build-isolation # Force cache invalidation - update this timestamp to rebuild RUN echo "Build timestamp: 2026-02-27 06:14:00" # Copy Space app (updated with torch_dtype fix) COPY app.py /app/app.py # Hugging Face Spaces sets PORT; default to 7860 locally. ENV PORT=7860 EXPOSE 7860 CMD ["python", "/app/app.py"]