########## builder ########## FROM node:18-alpine AS build WORKDIR /app # ─── manifests de todo el monorepo ─── COPY package*.json ./ # raíz COPY ui/package*.json ./ui/ # propio # (si tu ui depende de algo en core, agent, etc. copiá también sus package.json) # npm entiende workspaces porque ve el manifest raíz RUN npm ci --workspaces --include-workspace-root --omit=dev # ─── código fuente ─── COPY ui ./ui RUN npm run --prefix ui build # usa scripts del paquete ui ########## runtime ########## FROM nginx:alpine COPY --from=build /app/ui/dist /usr/share/nginx/html EXPOSE 80