FROM node:22-alpine AS build
WORKDIR /app
RUN corepack enable && corepack prepare pnpm@10.32.1 --activate
COPY package.json pnpm-lock.yaml ./
RUN pnpm install --frozen-lockfile
COPY . .
ARG APP_ENV=production
RUN pnpm exec tsx scripts/next-env.ts "$APP_ENV" build \
  && pnpm exec tsx scripts/package-standalone.ts "$APP_ENV" \
  && mv "dist/$APP_ENV" /release

FROM node:22-alpine AS runtime
WORKDIR /app
ENV NODE_ENV=production PORT=3000 HOSTNAME=0.0.0.0
COPY --from=build --chown=node:node /release ./
USER node
EXPOSE 3000
CMD ["node", "start.mjs"]
