# ── Шаг 1: сборка основного React-приложения ────────────────────────────────── FROM node:20-alpine AS app-build WORKDIR /build COPY web-react/package*.json ./ RUN npm ci --prefer-offline COPY web-react/ ./ RUN npm run build # ── Шаг 2: сборка редактора статей (TipTap) ─────────────────────────────────── FROM node:20-alpine AS editor-build WORKDIR /build COPY web/editor-ui/package*.json ./ RUN npm ci --prefer-offline COPY web/editor-ui/ ./ RUN npm run build # ── Шаг 3: nginx раздаёт оба приложения ─────────────────────────────────────── FROM nginx:alpine COPY --from=app-build /build/dist /usr/share/nginx/html/app COPY --from=editor-build /build/dist /usr/share/nginx/html/editor COPY web-react/nginx.conf /etc/nginx/conf.d/default.conf EXPOSE 80