Dockerfile 983 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. FROM node:20
  2. # Install system dependencies including HandBrakeCLI, SQLite, and FFmpeg
  3. RUN apt-get update && apt-get install -y \
  4. handbrake-cli \
  5. sqlite3 \
  6. ffmpeg \
  7. && rm -rf /var/lib/apt/lists/*
  8. # Install pnpm
  9. RUN npm install -g pnpm
  10. WORKDIR /app
  11. # Copy package files
  12. COPY package.json pnpm-lock.yaml pnpm-workspace.yaml turbo.json ./
  13. # Copy app package files
  14. COPY apps/web/package.json apps/web/
  15. COPY apps/service/package.json apps/service/
  16. COPY apps/docs/package.json apps/docs/
  17. COPY apps/cli/package.json apps/cli/
  18. # Copy packages
  19. COPY packages/eslint-config/package.json packages/eslint-config/
  20. COPY packages/typescript-config/package.json packages/typescript-config/
  21. COPY packages/ui/package.json packages/ui/
  22. # Install dependencies
  23. RUN pnpm install --frozen-lockfile
  24. # Copy source code
  25. COPY . .
  26. # Expose ports
  27. EXPOSE 3000 3001 3002
  28. # Set the CLI as the default entrypoint
  29. ENTRYPOINT ["pnpm", "run", "cli"]
  30. # Default command (can be overridden)
  31. CMD []