FROM node:22-slim AS base RUN corepack enable && corepack prepare pnpm@10.33.0 --activate WORKDIR /app FROM base AS deps COPY pnpm-lock.yaml pnpm-workspace.yaml package.json ./ COPY packages/shared/package.json packages/shared/ COPY packages/tsconfig/package.json packages/tsconfig/ COPY apps/server/package.json apps/server/ RUN pnpm install --frozen-lockfile --prod=false FROM base AS build COPY --from=deps /app/node_modules ./node_modules COPY --from=deps /app/packages/shared/node_modules ./packages/shared/node_modules COPY --from=deps /app/apps/server/node_modules ./apps/server/node_modules COPY . . RUN pnpm --filter @ai-tycoon/shared build && \ pnpm --filter @ai-tycoon/server typecheck FROM base AS production COPY --from=deps /app/node_modules ./node_modules COPY --from=deps /app/packages/shared/node_modules ./packages/shared/node_modules COPY --from=deps /app/apps/server/node_modules ./apps/server/node_modules COPY packages/shared ./packages/shared COPY packages/tsconfig ./packages/tsconfig COPY apps/server ./apps/server ENV NODE_ENV=production EXPOSE 3001 CMD ["node", "--import", "tsx", "apps/server/src/index.ts"]