# ################################################################ # ### Base image ### # ################################################################ FROM node:16-alpine as base WORKDIR /opt COPY . . WORKDIR /opt/app ARG NODE_ENV=production ENV NODE_ENV ${NODE_ENV} # ################################################################ # ### development image ### # ################################################################ FROM base as development RUN npm install --quiet --unsafe-perm --no-progress --no-audit --include=dev CMD npm run run:dev # ################################################################ # ### backend build image ### # ################################################################ FROM base as backendbuild RUN npm install --quiet --unsafe-perm --no-progress --no-audit --include=dev RUN npx tsc -p ./tsconfig.json # ################################################################ # ### production image ### # ################################################################ FROM base as production COPY --from=backendbuild --chown=node:node /opt/app/dist/ /opt/app/dist/ RUN npm install --quiet --unsafe-perm --no-progress --no-audit --omit=dev CMD npm run run:prod