Spaces:
Running
Running
| # CourtMitra Web — Next.js on Alpine | |
| FROM node:23-alpine AS builder | |
| RUN corepack enable && corepack prepare pnpm@10 --activate | |
| WORKDIR /app | |
| # Lockfile + manifests (cached) | |
| COPY pnpm-lock.yaml pnpm-workspace.yaml package.json tsconfig.base.json ./ | |
| COPY apps/web/package.json apps/web/ | |
| COPY packages/contracts/package.json packages/contracts/ | |
| COPY packages/ui/package.json packages/ui/ | |
| RUN pnpm install --frozen-lockfile | |
| # Source | |
| COPY apps/web/ apps/web/ | |
| COPY packages/ packages/ | |
| # Build Next.js with standalone output | |
| ENV NEXT_TELEMETRY_DISABLED=1 | |
| RUN pnpm --filter @courtmitra/web build | |
| # ---- Runtime stage ---- | |
| FROM node:23-alpine AS runner | |
| WORKDIR /app | |
| ENV NODE_ENV=production | |
| ENV NEXT_TELEMETRY_DISABLED=1 | |
| # Copy standalone build output | |
| COPY --from=builder /app/apps/web/.next/standalone ./ | |
| COPY --from=builder /app/apps/web/public ./apps/web/public/ | |
| COPY --from=builder /app/apps/web/.next/static ./apps/web/.next/static/ | |
| EXPOSE 3000 | |
| ENV PORT=3000 | |
| CMD ["node", "apps/web/server.js"] | |