2026-09-24 01:10:49 +03:00
|
|
|
FROM node:20-slim AS build
|
каркас: домен, генерация типов фронта, стенд и карточки задач
Контракт в коде: КИО по нормативу, 43 события WS по шести союзам направлений,
таймеры ГОСТ, таксономия E1–E6, шесть компетенций радара. make types гоняет
их через JSON Schema в generated.ts, тест ловит забытую регенерацию.
Стенд: docker compose postgres + backend, health отвечает, база досягаема
из контейнера бэкенда. Makefile не врёт — нереализованные цели падают
и называют карточку, которая их закроет.
frontend/.npmrc: под WSL2 npm install зависает на дефолтных 15 сокетах.
2026-09-15 19:35:03 +03:00
|
|
|
|
|
|
|
|
WORKDIR /app
|
|
|
|
|
COPY package.json package-lock.json* .npmrc ./
|
|
|
|
|
RUN npm install
|
|
|
|
|
|
|
|
|
|
COPY . .
|
2026-09-24 01:10:49 +03:00
|
|
|
RUN npm run build
|
|
|
|
|
|
|
|
|
|
FROM nginx:1.27-alpine
|
|
|
|
|
|
|
|
|
|
RUN apk add --no-cache openssl
|
|
|
|
|
COPY nginx.conf.template /etc/nginx/templates/default.conf.template
|
|
|
|
|
COPY nginx.tls.conf.template /etc/nginx/templates-tls/default.conf.template
|
|
|
|
|
COPY docker-entrypoint.d/15-local-certificate.sh /docker-entrypoint.d/15-local-certificate.sh
|
|
|
|
|
COPY --from=build /app/dist /usr/share/nginx/html
|
|
|
|
|
|
|
|
|
|
ENV BACKEND_HOST=backend
|
|
|
|
|
ENV BACKEND_PORT=8000
|
каркас: домен, генерация типов фронта, стенд и карточки задач
Контракт в коде: КИО по нормативу, 43 события WS по шести союзам направлений,
таймеры ГОСТ, таксономия E1–E6, шесть компетенций радара. make types гоняет
их через JSON Schema в generated.ts, тест ловит забытую регенерацию.
Стенд: docker compose postgres + backend, health отвечает, база досягаема
из контейнера бэкенда. Makefile не врёт — нереализованные цели падают
и называют карточку, которая их закроет.
frontend/.npmrc: под WSL2 npm install зависает на дефолтных 15 сокетах.
2026-09-15 19:35:03 +03:00
|
|
|
EXPOSE 5173
|
2026-09-24 01:10:49 +03:00
|
|
|
EXPOSE 5443
|