# Контекст сборки web — корень репо (docker-compose: build.context: .): # фронтенд + расширение (ZIP для страницы /extension, ТЗ 3.18). # --- Фронтенд --- FROM node:22-alpine AS build WORKDIR /build RUN apk add --no-cache git COPY frontend/package.json frontend/package-lock.json frontend/.npmrc ./ RUN npm ci COPY frontend/ . RUN npm run build # --- Расширение: сборка + zip в раздаваемые статики --- FROM node:22-alpine AS ext WORKDIR /ext RUN apk add --no-cache git zip COPY extension/package.json extension/package-lock.json extension/.npmrc ./ RUN npm ci COPY extension/ . RUN npm run build && mkdir -p /zip/extension && zip -qr /zip/extension/gntodo-extension.zip dist FROM nginx:alpine COPY --from=build /build/dist /usr/share/nginx/html COPY --from=ext /zip/extension /usr/share/nginx/html/extension COPY frontend/nginx.conf /etc/nginx/conf.d/default.conf EXPOSE 80