# Stage 0, "build-stage", based on Node.js, to build and compile the frontend
FROM docker.io/node:26 AS build-stage

WORKDIR /app

ARG VITE_API_URL
ARG NODE_ENV=production
ENV VITE_API_URL=${VITE_API_URL}

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

RUN --mount=type=cache,target=/root/.npm \
    npm ci --cache=/root/.npm

ENV NODE_ENV=${NODE_ENV}

COPY . /app/

RUN npm run build


# Stage 1, based on Nginx, to have only the compiled app, ready for production with Nginx
FROM docker.io/nginx:1

COPY --from=build-stage /app/dist/ /usr/share/nginx/html

COPY ./nginx.conf /etc/nginx/conf.d/default.conf
COPY ./nginx-backend-not-found.conf /etc/nginx/extra-conf.d/backend-not-found.conf
