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"]
