The frontend/UI server, written in JS using the MarkoJS library
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

38 lines
827 B

6 years ago
  1. ## 1. Builder
  2. # Use nodejs 10
  3. FROM node:10-alpine AS builder
  4. # Load repository into container
  5. WORKDIR /rpdata-frontend
  6. COPY . .
  7. # Setup development environment
  8. RUN apk add --no-cache git
  9. # Erease all traces of browser-refresh
  10. RUN sed -i '/browser-refresh/d' ./marko/page/layout.marko
  11. RUN sed -i '/browser-refresh/d' ./package.json
  12. # Install and compress node_modules
  13. RUN rm -rf node_modules
  14. RUN mkdir node_modules
  15. RUN npm install -g modclean
  16. RUN npm install
  17. RUN npm dedupe
  18. RUN modclean -r
  19. # Remove dev stuff
  20. RUN rm -rf .static
  21. RUN rm -rf .cache
  22. RUN rm -rf .git
  23. ## 2. Regroup
  24. FROM node:10-alpine
  25. RUN apk add --no-cache ca-certificates
  26. # Bring data over from builder
  27. WORKDIR /rpdata-frontend
  28. COPY --from=builder /rpdata-frontend /rpdata-frontend
  29. ENV NODE_ENV=production
  30. # Entry point
  31. CMD ["/usr/local/bin/node", "server"]