/
alexefan136
/
flowstack
Обзор
Документация
Войти
/
alexefan136
/
flowstack
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
ui/Dockerfile
46 строк
2 KB
Alexander Efanov
upd fix
29 июл 2026, 23:26
29 июл 2026, 23:26
d8ac8ee
Код
Авторство
О чём код?
# syntax=docker/dockerfile:1.6 # ============================================================================ # FlowStack UI — Multi-Arch React + Nginx # Сборка на Mac для linux/amd64 и linux/arm64 # ============================================================================ # ---------- Builder stage (BUILDPLATFORM для быстрой сборки Node) ---------- # ✅ Node build — платформонезависимый, результат — статические файлы JS/CSS/HTML. # Собираем на BUILDPLATFORM (Mac arm64) — быстро, без QEMU. FROM --platform=$BUILDPLATFORM node:22-alpine AS builder WORKDIR /app # Копируем package files первым (для кэширования npm install) COPY package.json package-lock.json* ./ # Устанавливаем зависимости RUN npm ci --no-audit --no-fund # Копируем исходники COPY . . # Собираем production build (результат — платформонезависимые статики) RUN npm run build # ---------- Runtime stage (TARGETPLATFORM) ---------- # Nginx отдаёт статические файлы, платформа важна только для самого nginx FROM --platform=$TARGETPLATFORM nginx:1.27-alpine AS runtime # Удаляем дефолтный конфиг RUN rm /etc/nginx/conf.d/default.conf # Копируем кастомный конфиг COPY nginx.conf /etc/nginx/conf.d/default.conf # Копируем собранные статики (платформонезависимы!) COPY --from=builder /app/dist /usr/share/nginx/html EXPOSE 80 CMD ["nginx", "-g", "daemon off;"] LABEL org.opencontainers.image.title="FlowStack UI" \ org.opencontainers.image.description="React Frontend (multi-arch)" \ org.opencontainers.image.vendor="FlowStack" \ org.opencontainers.image.version="1.0.0"