Dockerfile 879 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. FROM node:20-slim AS base
  2. # Install build tools for native addons (better-sqlite3)
  3. RUN apt-get update && apt-get install -y python3 make g++ && rm -rf /var/lib/apt/lists/*
  4. WORKDIR /app
  5. # Install dependencies
  6. COPY package.json package-lock.json* ./
  7. RUN npm ci
  8. # Copy source
  9. COPY . .
  10. # Build
  11. RUN npm run build
  12. # --- Production stage ---
  13. FROM node:20-slim AS runner
  14. RUN apt-get update && apt-get install -y python3 make g++ && rm -rf /var/lib/apt/lists/*
  15. WORKDIR /app
  16. ENV NODE_ENV=production
  17. ENV NEXT_TELEMETRY_DISABLED=1
  18. # Copy built app
  19. COPY --from=base /app/package.json ./
  20. COPY --from=base /app/package-lock.json* ./
  21. COPY --from=base /app/next.config.ts ./
  22. COPY --from=base /app/.next ./.next
  23. COPY --from=base /app/public ./public
  24. COPY --from=base /app/node_modules ./node_modules
  25. # Data directory for SQLite
  26. RUN mkdir -p /app/data
  27. EXPOSE 3000
  28. CMD ["npm", "start"]