Dockerfile 801 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. # =====================
  2. # STAGE 1: Build React frontend
  3. # =====================
  4. FROM node:18 AS frontend-build
  5. WORKDIR /app/frontend
  6. COPY frontend/package*.json ./
  7. RUN npm install
  8. COPY frontend/ ./
  9. RUN npm run build
  10. # =====================
  11. # STAGE 2: Set up Node backend with built frontend
  12. # =====================
  13. FROM node:18
  14. WORKDIR /app
  15. # Copy backend files
  16. COPY backend/ ./backend
  17. # Copy backend's package.json
  18. COPY backend/package*.json ./backend/
  19. WORKDIR /app/backend
  20. RUN npm install
  21. # Copy frontend build
  22. COPY --from=frontend-build /app/frontend/build /app/frontend-build
  23. # Install vnstat
  24. RUN apt-get update && \
  25. apt-get install -y vnstat && \
  26. apt-get clean && rm -rf /var/lib/apt/lists/*
  27. ENV FRONTEND_DIR=frontend-build
  28. ENV PORT=8050
  29. EXPOSE 8050
  30. CMD ["node", "server.js"]