Spaces:
Sleeping
Sleeping
| # --- STAGE 1: Build --- | |
| FROM node:20-alpine AS builder | |
| WORKDIR /app | |
| # Install dependencies | |
| COPY package.json ./ | |
| # We skip package-lock.json to avoid conflicts with manual version changes | |
| RUN npm install | |
| # Copy source and build | |
| COPY . . | |
| RUN npm run build | |
| # --- STAGE 2: Runtime --- | |
| FROM node:20-alpine AS runner | |
| WORKDIR /app | |
| ENV NODE_ENV=production | |
| ENV PORT=7860 | |
| # Copy necessary files from builder | |
| COPY --from=builder /app/next.config.ts ./ | |
| COPY --from=builder /app/public ./public | |
| COPY --from=builder /app/.next ./.next | |
| COPY --from=builder /app/node_modules ./node_modules | |
| COPY --from=builder /app/package.json ./package.json | |
| EXPOSE 7860 | |
| # Start the application | |
| CMD ["npm", "start"] | |