Dockerfile 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. FROM node:16.16.0-alpine as prebuild
  2. # Set working directory
  3. WORKDIR /var/www/app
  4. COPY ./package*.json ./
  5. # Install dependencies
  6. RUN yarn install --production --frozen-lockfile
  7. ARG ALAA_API_V2_SERVER=https://alaatv.com/api/v2
  8. ARG ALAA_API_V1_SERVER=https://alaatv.com/api/v1
  9. ARG ALAA_WEB_SERVER=https://alaatv.com
  10. ARG ALAA_MINIO_SERVER=https://stage-minio.alaatv.com
  11. ARG VUEX_PERSISTED_STATE_KEY=vuex
  12. ARG GET_TIME_SERVER=/time
  13. ARG ALAA_API_V1=/alaa/api/v1
  14. ARG ALAA_API_V2=/alaa/api/v2
  15. ARG ALAA_WEB=/alaa
  16. ARG ALAA_MINIO=/minio
  17. ARG NGINX_PORT=8081
  18. ARG SSR_PORT=3000
  19. ARG GOOGLE_TAG_MANAGER_TOKEN=GTM-PNP8RDW
  20. ARG HEAP_MEMORY_ALLOCATION_INTERVAL=10000
  21. ARG MAX_HEAP_MEMORY_ALLOCATION_IN_PERCENT=70
  22. ARG LOG_REQUEST=true
  23. # Copy all files
  24. COPY ./ ./
  25. # Build app on SSR mode
  26. RUN yarn build:ssr
  27. ##############################################
  28. FROM node:16.16.0-alpine
  29. COPY --from=prebuild /var/www/app/dist/ssr /var/www/app/dist/ssr
  30. WORKDIR /var/www/app/dist/ssr
  31. RUN yarn install
  32. # Expose the listening port
  33. EXPOSE 3000
  34. # Run container as non-root (unprivileged) user
  35. # The "node" user is provided in the Node.js Alpine base image
  36. USER node
  37. CMD ["node", "/var/www/app/dist/ssr/index.js"]