Spaces:
Runtime error
Runtime error
# ---------- Front‑end build stage ---------- | |
FROM node:18-alpine AS frontend-build | |
WORKDIR /app/frontend | |
COPY frontend/package*.json ./ | |
RUN npm ci --only=production | |
COPY frontend/ ./ | |
RUN npm run build && npm run export | |
# ---------- Back‑end stage ---------- | |
FROM python:3.11-slim AS backend | |
WORKDIR /app/backend # <─ matches compose volumes | |
# System build deps | |
RUN apt-get update && apt-get install -y gcc curl && rm -rf /var/lib/apt/lists/* | |
# Python deps | |
COPY backend/requirements.txt ./ | |
RUN pip install --no-cache-dir -r requirements.txt | |
# App source code | |
COPY backend/ ./ | |
# Static export from previous stage | |
COPY --from=frontend-build /app/frontend/out /app/frontend_out | |
# Create folders & DB file and make them writable | |
RUN mkdir -p /app/backend/uploads /app/backend/chroma_db \ | |
&& touch /app/backend/pdf_chatbot.db \ | |
&& chmod -R 777 /app/backend/uploads /app/backend/chroma_db /app/backend/pdf_chatbot.db | |
# Expose API port | |
EXPOSE 8000 | |
# Small health‑check | |
HEALTHCHECK --interval=30s --timeout=30s --start-period=5s --retries=3 \ | |
CMD curl -f http://localhost:8000/health || exit 1 | |
# Start FastAPI | |
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"] | |