# Stage 1: Install dependencies
FROM node:lts-alpine AS build

ARG NPM_TOKEN

RUN npm config set registry https://nexus.lisio.fr/ --location=global \
    && npm config set //nexus.lisio.fr/:_authToken=${NPM_TOKEN} --location=global

WORKDIR /usr/src/cache

COPY package*.json ./

RUN npm install --force

FROM node:lts-alpine

RUN apk add --no-cache shadow dos2unix

WORKDIR /usr/local/bin

COPY ./sync-modules.sh ./sync-modules.sh

RUN dos2unix /usr/local/bin/sync-modules.sh

WORKDIR /usr/src/cache

COPY --from=build /usr/src/cache/node_modules /usr/src/cache/node_modules

WORKDIR /var/www/html/solution

COPY ./ ./

ENTRYPOINT ["sh", "/usr/local/bin/sync-modules.sh"]

CMD ["npm", "run", "dev"]