#########
# 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/