######### # Build # ######### FROM docker.io/node:20-alpine as BUILD_IMAGE # External deps (for node-gyp add: "python3 make g++") RUN apk add --no-cache git # run as non root user USER node # go to user repository WORKDIR /home/node # Add package json ADD --chown=node:node package.json package-lock.json ./ # install dependencies from package lock RUN npm ci # Add project files ADD --chown=node:node . . # build RUN npm run docs # remove dev deps RUN npm prune --omit=dev ############## # Production # ############## FROM httpd:alpine COPY --from=BUILD_IMAGE /home/node/out/ /usr/local/apache2/htdocs/