Spaces:
Sleeping
Sleeping
| ######################################################################## | |
| # GeminiRAG β Hugging Face Spaces Dockerfile | |
| # | |
| # All services run inside one container managed by supervisord: | |
| # β’ Redis (in-process, port 6379) | |
| # β’ ChromaDB HTTP server (in-process, port 8001) | |
| # β’ FastAPI (port 7860 β HF Spaces public port) | |
| # β’ Celery worker (background) | |
| # | |
| # External dependencies (set as HF Space Secrets): | |
| # DATABASE_URL β Neon.tech free PostgreSQL | |
| # GROQ_API_KEY β console.groq.com (free) | |
| # SECRET_KEY β random 48-char string | |
| ######################################################################## | |
| FROM python:3.11-slim | |
| # ββ System deps ββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| RUN apt-get update && apt-get install -y --no-install-recommends \ | |
| gcc \ | |
| libpq-dev \ | |
| ffmpeg \ | |
| libsndfile1 \ | |
| redis-server \ | |
| supervisor \ | |
| curl \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # ββ Python deps ββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| WORKDIR /app | |
| COPY pyproject.toml . | |
| RUN pip install --no-cache-dir -e . | |
| # ββ App code βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| COPY . . | |
| # ββ Supervisor config ββββββββββββββββββββββββββββββββββββββββββββββββ | |
| COPY supervisord.conf /etc/supervisor/conf.d/geminirag.conf | |
| # ββ Entrypoint βββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| COPY entrypoint.sh /entrypoint.sh | |
| RUN chmod +x /entrypoint.sh | |
| # Persistent storage for ChromaDB vectors and uploaded files | |
| RUN mkdir -p /data/chroma /data/uploads | |
| EXPOSE 7860 | |
| ENTRYPOINT ["/entrypoint.sh"] | |