1FROM node:22-slim AS base
2ENV PNPM_HOME="/pnpm"
3ENV PATH="$PNPM_HOME:$PATH"
4RUN npm install -g pnpm
5COPY . /app
6WORKDIR /app
7
8FROM base AS prod-deps
9RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --prod --frozen-lockfile
10
11FROM base AS build
12RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile
13RUN pnpm run build
14
15FROM base
16COPY --from=prod-deps /app/node_modules /app/node_modules
17COPY --from=build /app/build /app/build
18EXPOSE 3000
19CMD [ "pnpm", "start" ]