# ################################################################ # ### Base image ### # ################################################################ FROM node:16-alpine as base WORKDIR /opt ENV NODE_ENV production RUN apk update && \ apk upgrade && \ npm i npm@latest -g && \ chown node:node -R /opt # && \ # apk add --no-cache bash && \ # apk add --no-cache git && \ COPY --chown=node:node package*.json ./ USER node # ################################################################ # ### build image ### # ################################################################ FROM base as build ENV NODE_ENV development COPY --chown=node:node . . RUN npm install && npm cache clean --force ENV PATH /opt/node_modules/.bin:$PATH RUN tsc -p ./tsconfig.node.json && \ resolve-tspaths --out "dist" && \ npm run spa-build # ################################################################ # ### modules image ### # ################################################################ FROM base as modules RUN npm install && npm cache clean --force # ################################################################ # ### production image ### # ################################################################ FROM base as production COPY --from=build --chown=node:node /opt/dist ./dist COPY --from=modules --chown=node:node /opt/node_modules ./node_modules COPY --chown=node:node ./wx-config.* ./ CMD node dist/backend/app.js