Spaces:
Sleeping
Sleeping
| # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| # EduRecommender β HuggingFace Spaces Docker image | |
| # | |
| # Multi-stage build: | |
| # Stage 1: Build the React client | |
| # Stage 2: Run the Node.js server + serve static assets | |
| # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| # ββ Stage 1: Build React client ββββββββββββββββββββββββββββββββββββββ | |
| FROM node:20-alpine AS builder | |
| WORKDIR /app/client | |
| COPY client/package.json client/package-lock.json* ./ | |
| RUN npm ci --no-audit --no-fund | |
| COPY client/ ./ | |
| RUN npm run build | |
| # ββ Stage 2: Production server βββββββββββββββββββββββββββββββββββββββ | |
| FROM node:20-alpine | |
| WORKDIR /app | |
| # Install server dependencies | |
| COPY server/package.json server/package-lock.json* ./server/ | |
| RUN cd server && npm ci --no-audit --no-fund --omit=dev | |
| # Copy server source | |
| COPY server/ ./server/ | |
| # Copy built React assets | |
| COPY --from=builder /app/client/dist ./client/dist | |
| # HuggingFace Spaces expects port 7860 | |
| ENV PORT=7860 | |
| EXPOSE 7860 | |
| CMD ["node", "server/src/index.js"] | |