FROM node:22.13-alpine AS builder # Install a pinned pnpm version without relying on Corepack's signature cache. RUN npm install -g pnpm@10.18.3 # Disable interactive prompts ENV CI=true WORKDIR /app # Copy package.json and pnpm-lock.yaml first for caching COPY package.json pnpm-lock.yaml ./ # Install dependencies RUN pnpm install --frozen-lockfile # Copy the rest of the files COPY . . # Build the application RUN pnpm build FROM node:22.13-alpine AS runner RUN npm install -g pnpm@10.18.3 WORKDIR /app COPY --from=builder /app ./ EXPOSE 3000 CMD ["pnpm", "start"]