Learn_Pathophysiology / Dockerfile
Vrda's picture
Fix: skip vue-tsc in Docker build (storybook TS errors)
6775581
# ===========================================================================
# Learn Pathophysiology — WC3 Edition
# Multi-stage build: Vue frontend + FastAPI backend
# Deploy: HuggingFace Spaces (Docker SDK)
# ===========================================================================
# ---------- Stage 1: Build Vue Frontend ----------
FROM node:20-slim AS frontend-build
WORKDIR /build
COPY frontend/package.json frontend/package-lock.json* ./
RUN npm install
COPY frontend/ ./
# Skip vue-tsc type checking (storybook files have TS errors) — just run vite build
RUN npx vite build
# Output goes to /build/dist/
# ---------- Stage 2: Python Backend + Serve Static ----------
FROM python:3.11-slim
WORKDIR /app
# Install Python deps
COPY backend/requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# Copy backend code
COPY backend/ ./
# Copy built frontend from stage 1
COPY --from=frontend-build /build/dist ./static/
# Copy chroma_db (must be present in docker build context)
COPY chroma_db/ ./chroma_db/
# Environment
ENV PORT=7860
ENV CHROMA_DIR=/app/chroma_db
# Auth (set via HuggingFace Spaces secrets)
# ENV GOOGLE_CLIENT_ID=...
# ENV JWT_SECRET=...
# ENV GEMINI_API_KEY=...
EXPOSE 7860
CMD ["uvicorn", "api:app", "--host", "0.0.0.0", "--port", "7860"]