Files
vidconf/frontend/Dockerfile

32 lines
1.8 KiB
Docker
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# syntax=docker/dockerfile:1
# ---------------------------------------------------------------------------
# Образ раздачи фронтенда VidConf: SPA (React + Vite) собирается в статику и
# вкомпилируется в nginx. Конфиг реверс-прокси (проксирование /api, /livekit,
# /media и т.п.) НЕ хранится в образе — он монтируется томом в
# docker-compose (`./nginx/nginx.conf` → /etc/nginx/conf.d/default.conf),
# чтобы правки прокси не требовали пересборки фронта. Здесь только статика.
#
# Фронт обращается к API по ОТНОСИТЕЛЬНЫМ путям (`/api/v1`, `/api/health` —
# см. frontend/src/api/client.ts), поэтому build-time переменные окружения
# (VITE_*) не нужны: собранная статика ходит на /api своего origin, который
# nginx проксирует на backend.
# ---------------------------------------------------------------------------
# --- Стадия сборки: Vite/React/TS → статика в /app/dist ---
FROM node:22-alpine AS build
WORKDIR /app
# Сначала манифесты зависимостей — отдельным слоем ради кэша: пересборка src
# не инвалидирует установленные node_modules, пока package*.json не менялись.
COPY package.json package-lock.json ./
RUN npm ci
COPY . .
# `npm run build` = `tsc -b && vite build` (см. package.json) → /app/dist
RUN npm run build
# --- Стадия раздачи: nginx со статикой SPA внутри образа ---
FROM nginx:1.27-alpine
COPY --from=build /app/dist /usr/share/nginx/html