# ── Stage 1: Build ── FROM node:20-alpine AS builder WORKDIR /app COPY package.json package-lock.json ./ RUN npm ci COPY tsup.config.ts tsconfig.json ./ COPY src/ ./src/ RUN npm run build # ── Stage 2: Production ── FROM node:20-alpine WORKDIR /app RUN apk add --no-cache ffmpeg COPY package.json package-lock.json ./ RUN npm ci --omit=dev COPY --from=builder /app/dist ./dist ENV NODE_ENV=production CMD ["node", "dist/index.js"]