TempDockerfile 997 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. FROM node:20.9-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 APP_API_SERVER=https://temp.shahidpalizvani.ir/api
  8. ARG VUEX_PERSISTED_STATE_KEY=vuex
  9. ARG GET_TIME_SERVER=/time
  10. ARG APP_API=/api
  11. ARG NGINX_PORT=80
  12. ARG SSR_PORT=3000
  13. ARG APP_ENV=production
  14. ARG GOOGLE_TAG_MANAGER_TOKEN=GTM-PNP1111
  15. ARG HEAP_MEMORY_ALLOCATION_INTERVAL=10000
  16. ARG MAX_HEAP_MEMORY_ALLOCATION_IN_PERCENT=70
  17. ARG LOG_REQUEST=true
  18. # Copy all files
  19. COPY ./ ./
  20. # Build app on SSR mode
  21. RUN yarn build:ssr
  22. ##############################################
  23. FROM node:20.9-alpine
  24. COPY --from=prebuild /var/www/app/dist/ssr /var/www/app/dist/ssr
  25. WORKDIR /var/www/app/dist/ssr
  26. RUN yarn install
  27. # Expose the listening port
  28. #EXPOSE ${PORT}
  29. # Run container as non-root (unprivileged) user
  30. # The "node" user is provided in the Node.js Alpine base image
  31. USER node
  32. CMD ["node", "/var/www/app/dist/ssr/index.js"]