# Этап 1: Сборка frontend FROM node:18-alpine AS frontend-builder WORKDIR /app # Копируем файлы зависимостей COPY package.json yarn.lock ./ # Устанавливаем зависимости RUN yarn install --frozen-lockfile # Копируем исходный код COPY . . # Собираем frontend RUN yarn build # Этап 2: Nginx с готовым frontend FROM nginx:alpine # Устанавливаем curl для healthcheck RUN apk add --no-cache curl # Копируем собранный frontend из первого этапа COPY --from=frontend-builder /app/dist/ /usr/share/nginx/html/ # Копируем конфигурацию nginx (используем dev версию для локальной разработки) COPY nginx-dev.conf /etc/nginx/nginx.conf.template # Копируем скрипт запуска COPY docker-entrypoint.sh /docker-entrypoint.sh RUN chmod +x /docker-entrypoint.sh ENTRYPOINT ["/docker-entrypoint.sh"] CMD ["nginx", "-g", "daemon off;"]