FROM node:22-alpine WORKDIR /app # Install pnpm RUN npm install -g pnpm # Copy workspace files COPY pnpm-workspace.yaml . COPY pnpm-lock.yaml . COPY package.json . # Copy workspace packages COPY packages/shared ./packages/shared # Copy vendor packages (workspace dependencies) COPY vendor/discord.js-selfbot-v13 ./vendor/discord.js-selfbot-v13 COPY vendor/discord-video-stream ./vendor/discord-video-stream COPY vendor/better-sqlite3 ./vendor/better-sqlite3 COPY vendor/drizzle-orm ./vendor/drizzle-orm # Copy root source (root package is a workspace member) COPY src ./src COPY vite.backend.config.ts . # Copy services COPY services/discord-gateway ./services/discord-gateway COPY services/backend ./services/backend COPY services/frontend ./services/frontend # Install dependencies RUN pnpm install --frozen-lockfile # Build discord gateway RUN pnpm --filter './services/discord-gateway' run build # Create recordings directory RUN mkdir -p /app/recordings # Start discord gateway CMD ["node", "services/discord-gateway/dist/index.js"]