pdf-qa-chatbot / Dockerfile
Amin23's picture
fix: add explicit write test for CHROMA_PERSIST_DIRECTORY
c1dc628
# ---------- 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"]