FROM node:22-alpine AS build
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm ci
COPY . .
ARG APP_ENV=production
RUN npx tsx scripts/next-env.ts "$APP_ENV" build && npx 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"]
