ARG BUILD_WORKDIR=/dojo/ExerciseChecker



######################################################################## Build stage
FROM node:18-alpine AS builder
LABEL maintainer="Michaël Minelli <michael-jean.minelli@hesge.ch>"
LABEL Description="Dojo exercise checker - Build stage"

ARG BUILD_WORKDIR

# Create app directory
ADD ExerciseChecker/ ${BUILD_WORKDIR}/

WORKDIR ${BUILD_WORKDIR}

# Install app dependencies
RUN npm install -g pkg-fetch
RUN npm install

# Build app
RUN npm run build

# Transform app to binary
RUN npx pkg . -t node18 --output ${BUILD_WORKDIR}/bin/app --public-packages "*" --public --options no-warnings



######################################################################## Run stage
FROM docker:24.0.6
LABEL maintainer="Michaël Minelli <michael-jean.minelli@hesge.ch>"
LABEL Description="Dojo exercise checker - Container generation for usage in exercise pipelines"

RUN apk update
RUN apk add git

ARG BUILD_WORKDIR

COPY --from=builder ${BUILD_WORKDIR}/bin/app /usr/local/bin/dojo_exercise_checker