Spaces:
Running
Running
| FROM node:20-alpine AS builder | |
| # Install pnpm | |
| RUN corepack enable && corepack prepare pnpm@latest --activate | |
| WORKDIR /app | |
| # Install dependencies | |
| COPY package.json pnpm-lock.yaml ./ | |
| RUN pnpm install --frozen-lockfile | |
| # Copy source and build | |
| COPY . . | |
| RUN pnpm run build | |
| # Prune dev dependencies | |
| RUN pnpm prune --prod | |
| # --- Production image --- | |
| FROM node:20-alpine | |
| USER 1000 | |
| WORKDIR /app | |
| COPY --from=builder --chown=1000 /app/build ./build | |
| COPY --from=builder --chown=1000 /app/node_modules ./node_modules | |
| COPY --from=builder --chown=1000 /app/package.json ./ | |
| EXPOSE 3000 | |
| CMD ["node", "build"] | |