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/agent/package.json ./packages/agent/package.json

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

COPY packages/core ./packages/core
COPY packages/agent ./packages/agent

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

FROM node:20-slim

WORKDIR /app/packages/agent

ENV NODE_ENV=production
ENV PORT=3000

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/agent/node_modules /app/packages/agent/node_modules
COPY --from=builder /app/packages/agent/dist /app/packages/agent/dist
COPY --from=builder /app/packages/agent/package.json /app/packages/agent/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

EXPOSE 3000

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