Spaces:
Sleeping
Sleeping
| # Build stage | |
| FROM node:20-alpine AS builder | |
| WORKDIR /app | |
| # Optional build tools if you have native deps | |
| RUN apk add --no-cache python3 make g++ | |
| # Install deps | |
| COPY package*.json ./ | |
| # If you have a lockfile, prefer: RUN npm ci | |
| RUN npm install | |
| # Build | |
| COPY . . | |
| RUN npm run build | |
| # Runtime stage | |
| FROM node:20-alpine | |
| WORKDIR /app | |
| # Copy build output and preview config | |
| COPY --from=builder /app/dist ./dist | |
| COPY vite.preview.config.mjs ./vite.preview.config.mjs | |
| # Minimal package setup and install vite for preview | |
| RUN npm init -y && npm i --no-save vite@^5 | |
| # Ensure the "node" user can write to /app (Vite writes a temp file next to the config) | |
| RUN chown -R node:node /app | |
| USER node | |
| ENV PORT=7860 | |
| EXPOSE 7860 | |
| # Run Vite preview with the minimal config | |
| CMD ["node", "node_modules/vite/bin/vite.js", "preview", "--config", "./vite.preview.config.mjs"] |