Files
Proxmox-VPS-Panel/frontend/Dockerfile
T
2026-07-24 22:08:03 +03:00

31 lines
1.3 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.
# --- build stage ---
FROM node:20-alpine AS build
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
COPY . .
RUN npm run build
# --- runtime stage ---
FROM nginx:1.27-alpine
# Заменяем дефолтную конфигурацию на нашу.
COPY nginx.conf /etc/nginx/conf.d/default.conf
COPY --from=build /app/dist /usr/share/nginx/html
# noVNC — UMD/IIFE-библиотека, грузится через <script src="/novnc/rfb.js">.
# Копируем всю папку lib (rfb.js + зависимости webutil, base64, pako и т.п.),
# чтобы относительные require() внутри noVNC работали корректно.
COPY --from=build /app/node_modules/@novnc/novnc/lib /usr/share/nginx/html/novnc
# nginx уже работает от пользователя nginx, но nginx:alpine слушает на 80.
# В нашем nginx.conf прописан listen 5173 — порт публикует compose.
EXPOSE 5173
HEALTHCHECK --interval=15s --timeout=5s --retries=3 \
CMD wget -q --spider http://localhost:5173/ || exit 1