| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- FROM node:20.9-alpine AS prebuild
- # Set working directory
- WORKDIR /var/www/app
- COPY ./package*.json ./
- # Install dependencies
- RUN yarn install --production --frozen-lockfile
- ARG APP_API_SERVER=https://palizvani.ir/api
- ARG VUEX_PERSISTED_STATE_KEY=vuex
- ARG GET_TIME_SERVER=/time
- ARG APP_API=/api
- ARG NGINX_PORT=80
- ARG SSR_PORT=3000
- ARG APP_ENV=production
- ARG GOOGLE_TAG_MANAGER_TOKEN=GTM-PNP1111
- ARG HEAP_MEMORY_ALLOCATION_INTERVAL=10000
- ARG MAX_HEAP_MEMORY_ALLOCATION_IN_PERCENT=70
- ARG LOG_REQUEST=true
- # Copy all files
- COPY ./ ./
- # Build app on SSR mode
- RUN yarn build:ssr
- ##############################################
- FROM node:20.9-alpine
- COPY --from=prebuild /var/www/app/dist/ssr /var/www/app/dist/ssr
- WORKDIR /var/www/app/dist/ssr
- RUN yarn install
- # Expose the listening port
- #EXPOSE ${PORT}
- # Run container as non-root (unprivileged) user
- # The "node" user is provided in the Node.js Alpine base image
- USER node
- CMD ["node", "/var/www/app/dist/ssr/index.js"]
|