Dockerfile.api 722 B

123456789101112131415161718192021222324252627
  1. FROM node:22-slim
  2. # Install FFmpeg + wget (for thumbnail generation and healthcheck)
  3. RUN apt-get update && apt-get install -y --no-install-recommends ffmpeg wget ca-certificates && rm -rf /var/lib/apt/lists/*
  4. WORKDIR /app
  5. # Copy package files and install
  6. COPY packages/api/package*.json ./
  7. COPY packages/api/prisma ./prisma
  8. COPY packages/api/tsconfig.json ./
  9. RUN npm install && rm -rf node_modules/@prisma/client && npx prisma generate
  10. # Copy source code
  11. COPY packages/api/src ./src
  12. # Build TypeScript
  13. RUN npx tsc -p tsconfig.json
  14. # Copy the worker JS files (pure JS, not compiled — run in forked child)
  15. COPY packages/api/src/worker ./src/worker
  16. EXPOSE 3001
  17. ENV NODE_ENV=production
  18. CMD ["node", "dist/index.js"]