FROM node:24-alpine AS build WORKDIR /src COPY package*.json ./ RUN npm ci --no-audit --no-fund COPY . ./ RUN npm run build FROM nginx:1.27-alpine COPY nginx.conf.template /etc/nginx/templates/default.conf.template # vite.config.ts deliberately emits into the Go embed directory so the API # and standalone browser image use the same compiled application. Copy that # fresh build, not the stale source-tree web/dist fallback. COPY --from=build /internal/webui/assets/ /usr/share/nginx/html/ EXPOSE 8080