| # ---- Build stage ---- | |
| FROM node:20-alpine AS build | |
| WORKDIR /app | |
| COPY package.json package-lock.json* ./ | |
| # HF builder may set NODE_ENV=production; force dev deps for building | |
| RUN npm install --include=dev | |
| COPY . . | |
| RUN npm run build | |
| # ---- Runtime stage ---- | |
| FROM node:20-alpine | |
| WORKDIR /app | |
| # Install a tiny static server | |
| RUN npm install -g serve | |
| COPY --from=build /app/dist ./dist | |
| EXPOSE 7860 | |
| CMD ["serve", "-s", "dist", "-l", "7860"] | |