Spaces:
Running
Running
# 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"] | |