Spaces:
Sleeping
Sleeping
| FROM python:3.11-slim | |
| # Install system dependencies | |
| # libgl1-mesa-glx is obsolete in newer Debian (Trixie), replaced by libgl1 and libglx-mesa0 | |
| RUN apt-get update && apt-get install -y \ | |
| git \ | |
| wget \ | |
| libgl1 \ | |
| libglx-mesa0 \ | |
| libglib2.0-0 \ | |
| build-essential \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # Set working directory | |
| WORKDIR /app | |
| # Copy the GroundingDINO code first | |
| RUN git clone https://github.com/IDEA-Research/GroundingDINO.git . | |
| # Install dependencies and the package | |
| RUN pip install --no-cache-dir torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu | |
| RUN pip install --no-cache-dir transformers==4.35.2 | |
| RUN pip install --no-cache-dir fastapi uvicorn python-multipart supervision opencv-python-headless huggingface_hub | |
| # Install GroundingDINO package without CUDA extensions for CPU mode | |
| ENV CUDA_HOME="" | |
| RUN pip install --no-cache-dir -e . | |
| # Create weights directory and download Swin-B weights | |
| RUN mkdir -p weights && \ | |
| wget -q -O weights/groundingdino_swinb_cogcoor.pth https://github.com/IDEA-Research/GroundingDINO/releases/download/v0.1.0-alpha2/groundingdino_swinb_cogcoor.pth && \ | |
| cp groundingdino/config/GroundingDINO_SwinB_cfg.py weights/GroundingDINO_SwinB_cfg.py | |
| # Copy the application code | |
| COPY main.py . | |
| # Expose port 7860 (Hugging Face Spaces default) | |
| EXPOSE 7860 | |
| # Run the application | |
| CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "7860"] | |