FROM node:20-slim AS builder

RUN npm install -g pnpm

WORKDIR /app

COPY package.json pnpm-lock.yaml pnpm-workspace.yaml turbo.json ./
COPY apps/cli/package.json ./apps/cli/
COPY packages/engine/package.json ./packages/engine/
COPY packages/rules/package.json ./packages/rules/
COPY packages/types/package.json ./packages/types/
COPY packages/config ./packages/config

RUN pnpm install

COPY apps/cli ./apps/cli
COPY packages/engine ./packages/engine
COPY packages/rules ./packages/rules
COPY packages/types ./packages/types
COPY packages/config ./packages/config

RUN pnpm build

FROM node:20-slim

RUN apt-get update && apt-get install -y git && rm -rf /var/lib/apt/lists/*

WORKDIR /app

# Copy built files and node_modules from builder
COPY --from=builder /app /app

RUN chmod +x /app/apps/cli/scanner-entrypoint.sh

ENTRYPOINT ["/app/apps/cli/scanner-entrypoint.sh"]
