# --------------> The build image
FROM node:lts@sha256:0c672d547405fe64808ea28b49c5772b1026f81b3b716ff44c10c96abf177d6a as base

ENV NODE_ENV=development

WORKDIR /usr/local/app

COPY . .


RUN yarn install \
    yarn build && \
    yarn cache clean && \
    rm -rf node_modules

# --------------> The production image
FROM node:lts-alpine@sha256:2c405ed42fc0fd6aacbe5730042640450e5ec030bada7617beac88f742b6997b as production

LABEL version="1.0.0" description="myzap-fit" maintainer="Eduardo Policarpo<eduardopolicarpo@gmail.com>"

ENV NODE_ENV=production \
  PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true \
  TZ=America/Sao_Paulo \
  HUSKY_SKIP_HOOKS=true

WORKDIR /usr/local/app

COPY --chown=node:node --from=base /usr/local/app/dist/ ./dist
COPY --chown=node:node --from=base /usr/local/app/public/ ./public
COPY --chown=node:node --from=base /usr/local/app/package*.json ./

RUN apk update \
  && apk add --no-cache dumb-init tzdata chromium curl \
  && yarn install --frozen-lockfile --ignore-scripts --production \
  && npm install --ignore-scripts=false --foreground-scripts --verbose sharp \
  && mkdir -p logs FileSessions tokens \
  && chown -R node:node logs FileSessions tokens \
  && rm /usr/local/app/package*.json \
  && rm -rf /tmp/* /var/cache/apk/*

USER node

CMD ["dumb-init", "node", "build/app.js"]
