# syntax=docker/dockerfile:1

FROM node:25-bookworm-slim AS builder

WORKDIR /build

ENV ELECTRON_SKIP_BINARY_DOWNLOAD=1

COPY upstream/HubFrontend/package.json upstream/HubFrontend/package-lock.json upstream/HubFrontend/.npmrc ./
RUN --mount=type=cache,target=/root/.npm npm ci

COPY upstream/HubFrontend/ ./

ARG ASSETS_BASE=""
ARG VITE_USE_MULTIHUB=false
ARG VITE_MULTIHUB_DISCOVERY=""
ARG VITE_CONFIG_URL

ENV ASSETS_BASE=${ASSETS_BASE} \
    VITE_USE_MULTIHUB=${VITE_USE_MULTIHUB} \
    VITE_MULTIHUB_DISCOVERY=${VITE_MULTIHUB_DISCOVERY} \
    VITE_CONFIG_URL=${VITE_CONFIG_URL}

RUN npm run build

FROM nginx:alpine AS runtime

COPY nginx/default.conf /etc/nginx/conf.d/default.conf
COPY --from=builder /build/build/ /usr/share/nginx/html/

EXPOSE 8080
