ARG NGINX_IMAGE="nginx"
ARG NGINX_VERSION="alpine"

ARG NODE_IMAGE="node"
ARG NODE_VERSION="16.17.1-alpine"


## Builder image (builds the static content from JS sources)
FROM ${NODE_IMAGE}:${NODE_VERSION}  AS appbuild


WORKDIR /app

COPY package.json package-lock.json /app/

RUN npm ci --no-audit --no-fund \
    && ls -la /app \
    && find /app ! -path '/app/node_modules/*'

COPY . /app/

RUN npm ci \
    && npm run build \
    && ls -la /app \
    && find /app ! -path '/app/node_modules/*'


## Client web server image
FROM ${NGINX_IMAGE}:${NGINX_VERSION}


COPY --from=appbuild app/build/ /usr/share/nginx/html/

# Copy the custom Nginx configuration
COPY default.conf /etc/nginx/conf.d/default.conf

RUN ls -la /usr/share/nginx/html/ \
    && chown root:root -R /usr/share/nginx/html/ \
    && chmod 755 -R /usr/share/nginx/html/ \
    && ls -la /usr/share/nginx/html/ \
    && find /usr/share/nginx/html/
