From e61edf0ba7f8be46ee369fa61fba17a5725face6 Mon Sep 17 00:00:00 2001 From: host Date: Fri, 24 Jul 2026 22:40:07 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D1=84=D0=B0=D0=B9=D0=BB=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/Dockerfile | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/frontend/Dockerfile b/frontend/Dockerfile index d726043..b21c17e 100644 --- a/frontend/Dockerfile +++ b/frontend/Dockerfile @@ -1,28 +1,39 @@ -# --- build stage --- -FROM node:20-alpine AS build +# --- deps: установка зависимостей в отдельный stage --- +# node_modules нужен и для Vite-сборки, и для runtime (там лежит noVNC). +# Выносим установку в отдельный stage, чтобы из него можно было копировать +# node_modules и в build, и в runtime независимо. +FROM node:20-alpine AS deps WORKDIR /app -# Копируем манифесты отдельно для кэширования слоя зависимостей. COPY package.json package-lock.json* ./ # npm ci требует lock-файл; если его нет — fallback на npm install. -RUN if [ -f package-lock.json ]; then npm ci; else npm install; fi +RUN if [ -f package-lock.json ]; then \ + npm ci --no-audit --no-fund; \ + else \ + npm install --no-audit --no-fund; \ + fi +# --- build: Vite-сборка поверх deps --- +# Наследуемся от deps, чтобы node_modules был доступен. +FROM deps AS build +WORKDIR /app COPY . . RUN npm run build -# --- runtime stage --- +# --- runtime: nginx + собранный фронтенд + noVNC из node_modules --- FROM nginx:1.27-alpine # Заменяем дефолтную конфигурацию на нашу. COPY nginx.conf /etc/nginx/conf.d/default.conf + +# Артефакты Vite. COPY --from=build /app/dist /usr/share/nginx/html # noVNC — UMD/IIFE-библиотека, грузится через