Spaces:
Sleeping
Sleeping
| # Use Python 3.11 as base | |
| FROM python:3.11-slim | |
| # Install system dependencies | |
| RUN apt-get update && apt-get install -y \ | |
| curl \ | |
| gnupg \ | |
| && curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \ | |
| && apt-get install -y nodejs \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # Set working directory | |
| WORKDIR /app | |
| # 1. Copy project structure first | |
| COPY pyproject.toml . | |
| COPY brain ./brain | |
| COPY scripts ./scripts | |
| COPY README.md . | |
| # 2. Install the package so 'import brain' works | |
| RUN pip install . | |
| RUN pip install fastapi uvicorn | |
| # 3. Copy backend | |
| COPY web/backend ./web/backend | |
| # 4. Copy frontend and build it | |
| COPY web/frontend ./web/frontend | |
| WORKDIR /app/web/frontend | |
| RUN npm install | |
| RUN npm run build | |
| # Back to root | |
| WORKDIR /app | |
| # Copy the built binary (if present) | |
| COPY dist ./dist | |
| # Create a shell script to start both services | |
| RUN echo '#!/bin/bash\n\ | |
| uvicorn web.backend.main:app --host 0.0.0.0 --port 8000 &\n\ | |
| cd web/frontend && npm run start -- -p 7860\n\ | |
| ' > start.sh | |
| RUN chmod +x start.sh | |
| # Expose the port Hugging Face expects | |
| EXPOSE 7860 | |
| # Start the services | |
| CMD ["./start.sh"] | |