server.dockerfile 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. FROM node:18 as build_helper
  2. ARG HOME="/home/node"
  3. ARG APPDIR="${HOME}/monitoring"
  4. RUN mkdir ${APPDIR}
  5. WORKDIR ${APPDIR}
  6. COPY ./ng/package.json ./ng/
  7. RUN cd ng && npm install
  8. COPY ./server/package.json ./server/
  9. RUN cd server && npm install
  10. COPY ./common/ ./common
  11. COPY ./bootstrap-theme/ ./bootstrap-theme
  12. COPY ./ng/ ./ng
  13. RUN cd ng && npm run build
  14. COPY ./server/tsconfig* ./server/
  15. COPY ./server/src/ ./server/src
  16. RUN cd ${APPDIR}/server && npm run build
  17. FROM node:18
  18. ARG HOME="/home/node"
  19. ARG APPDIR="${HOME}/monitoring"
  20. RUN apt update && \
  21. apt install -y tzdata
  22. # Change TimeZone
  23. ENV TZ=Europe/Berlin
  24. RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
  25. RUN mkdir ${APPDIR}
  26. WORKDIR ${APPDIR}
  27. COPY --chown=node:node ./server/google-cloud/ ./google-cloud
  28. COPY --chown=node:node ./server/package.json .
  29. RUN npm install --omit=dev
  30. COPY ./server/database.json .
  31. COPY --from=build_helper --chown=node:node ${APPDIR}/server/dist/ ./dist
  32. COPY --from=build_helper --chown=node:node ${APPDIR}/server/public/ ./public
  33. RUN mkdir data
  34. VOLUME ${APPDIR}/data
  35. EXPOSE 80
  36. CMD [ "node" , "." ]