Spaces:
Sleeping
Sleeping
| # Build stage | |
| FROM node:22-alpine AS builder | |
| # Set working directory | |
| WORKDIR /app | |
| # Copy package files | |
| COPY package*.json ./ | |
| # Install all dependencies (including devDependencies for building) | |
| RUN npm ci | |
| # Copy source code | |
| COPY . . | |
| # Build the application | |
| RUN npm run build | |
| # Production stage | |
| FROM node:22-alpine AS production | |
| # Set NODE_ENV to production | |
| ENV NODE_ENV=production | |
| # Set working directory | |
| WORKDIR /app | |
| # Copy package files | |
| COPY package*.json ./ | |
| # Install only production dependencies | |
| RUN npm ci --omit=dev && npm cache clean --force | |
| # Copy built application from builder stage | |
| COPY --from=builder /app/dist ./dist | |
| # Copy server file | |
| COPY server.js ./ | |
| # Expose port 7860 (required by Hugging Face Spaces) | |
| EXPOSE 7860 | |
| # Start the application | |
| CMD ["npm", "start"] | |