ARG NODE_VERSION=latest
# multi-stage build

# stage intermediate only
FROM node:${NODE_VERSION} as builder
WORKDIR /build/
COPY . .
# needed for dependencies git+ssh
ARG SSH_PRIVATE_KEY
RUN mkdir -p /root/.ssh
RUN echo "${SSH_PRIVATE_KEY}" >> /root/.ssh/id_rsa
RUN chmod 600 /root/.ssh/id_rsa
RUN touch /root/.ssh/known_hosts
RUN ssh-keyscan github.com >> /root/.ssh/known_hosts
RUN npm ci
RUN node_modules/.bin/browserify --debug -x lodash --standalone tdf3 index.js -o build/bundle.js
# runner - node environment
FROM node:${NODE_VERSION} as runner
ARG CODE_VERSION=0.0.0
WORKDIR /app/
COPY --from=builder /build/build/ /app/
COPY --from=builder /build/node_modules/ /app/node_modules/
# server - browser environemnt
FROM nginx:stable as server
ARG CODE_VERSION=0.0.0
COPY --from=builder /build/build/ /usr/share/nginx/html/
