FROM node:22-alpine AS builder

RUN npm install -g pnpm

WORKDIR /app

COPY package*.json pnpm-lock.yaml pnpm-workspace.yaml ./
RUN pnpm install --frozen-lockfile --ignore-scripts

COPY . .
RUN pnpm run build


FROM node:22-alpine AS runner

RUN npm install -g pnpm
RUN addgroup -S next && adduser -S -G next next

WORKDIR /app

COPY --from=builder /app/.next ./.next  
COPY --from=builder /app/public ./public
COPY --from=builder /app/package*.json ./
COPY --from=builder /app/pnpm-lock.yaml ./
COPY --from=builder /app/pnpm-workspace.yaml ./
COPY --from=builder /app/node_modules ./node_modules

RUN chown -R next:next /app

USER next

EXPOSE 3000

ENV NODE_ENV=production

CMD ["pnpm","start"]