# syntax=docker/dockerfile:1 FROM node:22.22.3-alpine AS base RUN corepack enable && corepack prepare pnpm@11 --activate # ── deps ────────────────────────────────────────────────────────────────────── FROM base AS deps WORKDIR /app COPY package.json pnpm-workspace.yaml pnpm-lock.yaml ./ RUN pnpm install --frozen-lockfile # ── build ───────────────────────────────────────────────────────────────────── FROM deps AS builder WORKDIR /app COPY tsconfig.json ./ COPY build.js ./ COPY src ./src RUN pnpm build # ── runtime ─────────────────────────────────────────────────────────────────── FROM node:22.22.3-alpine AS runner RUN corepack enable && corepack prepare pnpm@latest --activate WORKDIR /app COPY package.json pnpm-workspace.yaml pnpm-lock.yaml ./ RUN pnpm install --frozen-lockfile --prod COPY --from=builder /app/dist ./dist EXPOSE 3000 CMD ["node", "dist/index.js"]