FROM node:alpine

RUN \
  apk add --no-cache \
  bash \
  coreutils \
  g++ \
  make

ENV APP_DIR=/usr/app
RUN mkdir -p $APP_DIR

WORKDIR $APP_DIR
COPY package.json package-lock.json $APP_DIR/
RUN  \
  mkdir -p ./src && \
  adduser -D -s /bin/false app && \
  npm install && \
  ln -s $APP_DIR/node_modules $APP_DIR/src/node_modules

COPY . src/
WORKDIR $APP_DIR/src
USER app

CMD [ "npm", "start" ]
