# ################################################################ # ### Base image ### # ################################################################ FROM node:16-alpine as base WORKDIR /app COPY . . ARG NODE_ENV=production ENV NODE_ENV ${NODE_ENV} # ################################################################ # ### development image ### # ################################################################ FROM base as development WORKDIR /app RUN npm install --quiet --unsafe-perm --no-progress --no-audit --include=dev CMD npm run run:dev # ################################################################ # ### backend build image ### # ################################################################ FROM base as backendbuild WORKDIR /app 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 /app/dist/ /app/dist/ WORKDIR /app RUN npm install --quiet --unsafe-perm --no-progress --no-audit --omit=dev CMD npm run run:prod