# Base image with pnpm FROM node:20-alpine AS base RUN corepack enable && corepack prepare pnpm@latest --activate WORKDIR /app # Dependencies stage FROM base AS deps COPY package.json pnpm-lock.yaml* ./ RUN pnpm install --frozen-lockfile || pnpm install # Development stage FROM base AS dev COPY --from=deps /app/node_modules ./node_modules COPY . . EXPOSE 3000 ENV NODE_ENV=development ENV HOSTNAME="0.0.0.0" CMD ["pnpm", "dev"] # Builder stage FROM base AS builder COPY --from=deps /app/node_modules ./node_modules COPY . . ENV NEXT_TELEMETRY_DISABLED=1 RUN pnpm build # Production stage FROM base AS production ENV NODE_ENV=production ENV NEXT_TELEMETRY_DISABLED=1 COPY --from=builder /app/.next/standalone ./ COPY --from=builder /app/.next/static ./.next/static COPY --from=builder /app/public ./public EXPOSE 3000 ENV HOSTNAME="0.0.0.0" CMD ["node", "server.js"]