FROM node:20-slim AS builder

WORKDIR /app

ENV NODE_ENV=development

RUN corepack enable

COPY pnpm-lock.yaml pnpm-workspace.yaml package.json tsconfig.json ./
COPY packages/core/package.json ./packages/core/package.json
COPY packages/monitor/package.json ./packages/monitor/package.json

RUN pnpm install --frozen-lockfile --filter . --filter @sock/monitor...

COPY packages/core ./packages/core
COPY packages/monitor ./packages/monitor

RUN pnpm -F @sock/core build && pnpm -F @sock/monitor build

FROM node:20-slim

WORKDIR /app/packages/monitor

ENV NODE_ENV=production

COPY --from=builder /app/node_modules /app/node_modules
COPY --from=builder /root/.local/share/pnpm /root/.local/share/pnpm
COPY --from=builder /app/packages/monitor/node_modules /app/packages/monitor/node_modules
COPY --from=builder /app/packages/monitor/dist /app/packages/monitor/dist
COPY --from=builder /app/packages/monitor/package.json /app/packages/monitor/package.json
COPY --from=builder /app/packages/core/dist /app/packages/core/dist
COPY --from=builder /app/packages/core/package.json /app/packages/core/package.json
COPY --from=builder /app/packages/core/node_modules /app/packages/core/node_modules

CMD ["node","dist/index.js"]