# --- Стадия сборки --- FROM node:18-alpine AS build-stage WORKDIR /app # Копируем package.json и package-lock.json (или yarn.lock) COPY package*.json ./ # Устанавливаем зависимости RUN npm install # Копируем остальные файлы приложения COPY . . # Собираем приложение для продакшена RUN npm run build # --- Стадия запуска (сервирование статики с помощью Nginx) --- FROM nginx:stable-alpine AS production-stage # Копируем собранные файлы из стадии сборки в директорию Nginx COPY --from=build-stage /app/dist /usr/share/nginx/html # (Опционально) Копируем кастомную конфигурацию Nginx, если нужна # COPY nginx.conf /etc/nginx/conf.d/default.conf # Открываем порт 80, на котором Nginx слушает по умолчанию EXPOSE 80 # Команда для запуска Nginx CMD ["nginx", "-g", "daemon off;"]