Files
store-platform/client/Dockerfile
T
2025-12-11 21:47:42 +03:00

51 lines
1.7 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.
# Multi-stage build для фронтенда
# Stage 1: Сборка приложения
FROM node:18-alpine AS builder
WORKDIR /app
# Копируем файлы зависимостей
COPY package*.json ./
# Устанавливаем зависимости
RUN npm ci && npm cache clean --force
# Копируем исходный код
COPY . .
# Переменные окружения для сборки
# VITE_API_URL используется в runtime через import.meta.env
ARG VITE_API_URL
ENV VITE_API_URL=${VITE_API_URL}
# Собираем приложение
RUN npm run build
# Stage 2: Production образ с nginx
FROM nginx:alpine
# Устанавливаем wget и gettext (для envsubst)
RUN apk add --no-cache wget gettext
# Копируем собранные файлы из builder stage
COPY --from=builder /app/dist /usr/share/nginx/html
# Копируем шаблон конфигурации nginx
COPY nginx.conf.template /etc/nginx/templates/default.conf.template
# Переменные окружения для nginx конфигурации (значения по умолчанию)
# Если бэкенд использует HTTPS, используйте https://backend:443
ENV BACKEND_URL=https://backend:443
# BACKEND_SSL_VERIFY: "on" = проверка включена, "off" = проверка отключена (по умолчанию отключена для самоподписанных сертификатов)
ENV BACKEND_SSL_VERIFY=off
# Открываем порт 80
EXPOSE 80
# Healthcheck
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
CMD wget --no-verbose --tries=1 --spider http://localhost/ || exit 1
# Запускаем nginx
CMD ["nginx", "-g", "daemon off;"]