FROM node:22.13-alpine AS frontend-build

WORKDIR /app

ARG NPM_CONFIG_REGISTRY=https://registry.npmjs.org/
ARG VITE_RUNTIME_ENV=production
ARG VITE_ALLOW_INSECURE_DEV_LOGIN=false
ENV NPM_CONFIG_REGISTRY=$NPM_CONFIG_REGISTRY
ENV VITE_RUNTIME_ENV=$VITE_RUNTIME_ENV
ENV VITE_ALLOW_INSECURE_DEV_LOGIN=$VITE_ALLOW_INSECURE_DEV_LOGIN

COPY frontend/package*.json ./
RUN --mount=type=cache,target=/root/.npm \
    npm ci \
      --prefer-offline \
      --no-audit \
      --fetch-retries=5 \
      --fetch-retry-mintimeout=20000 \
      --fetch-retry-maxtimeout=120000 \
      --replace-registry-host=npmjs

COPY frontend/ ./
RUN npm run build

FROM nginx:1.27-alpine

COPY nginx/nginx.conf /etc/nginx/nginx.conf
COPY --from=frontend-build /app/dist /usr/share/nginx/html
