FROM node:22-alpine WORKDIR /app # Copy package files COPY package.json package-lock.json* pnpm-lock.yaml* npm-shrinkwrap.json* ./ # Install dependencies RUN if [ -f pnpm-lock.yaml ]; then npm install -g pnpm && pnpm install --frozen-lockfile; \ elif [ -f package-lock.json ]; then npm ci --legacy-peer-deps; \ else npm install --legacy-peer-deps; fi # Copy source code COPY . . # Build the client so the Activity gets compiled JS (no Vite dev mode in Discord iframe) RUN npm run build:client # Set environment ENV NODE_ENV=production ENV PORT=3000 # Expose port EXPOSE 3000 # Start the server CMD ["npm", "run", "dev"]