# PNPM Base Layer

FROM node:24-bullseye-slim AS base

ENV PNPM_HOME="/pnpm"
ENV PATH="$PNPM_HOME:$PATH"

RUN corepack enable

WORKDIR /app
COPY . .

# Dependency Layer

FROM base AS prod-deps

RUN npm install -g corepack@latest
RUN corepack enable

RUN pnpm install --prod --frozen-lockfile

# Build Layer

FROM base AS build

RUN npm install -g corepack@latest
RUN corepack enable

RUN pnpm install --frozen-lockfile

ENV NODE_OPTIONS=--max_old_space_size=8096

RUN pnpm build

# Runner Layer

FROM base as runner

COPY --from=prod-deps /app/node_modules /app/node_modules
COPY --from=build /app/build /app/build

COPY package.json .

ENV HOST=0.0.0.0
ENV PORT=3000
ENV NODE_ENV=production

EXPOSE 3000

ENTRYPOINT  [ "node", "build" ]
