FROM node:20-alpine AS builder WORKDIR /app # Копируем package файлы COPY package*.json ./ # Устанавливаем зависимости RUN npm ci # Копируем исходный код COPY . . # Собираем production build RUN npm run build # Production stage FROM node:20-alpine WORKDIR /app # Копируем package файлы и устанавливаем зависимости COPY package*.json ./ RUN npm ci # Копируем собранные файлы из builder COPY --from=builder /app/dist ./dist # Открываем порт EXPOSE 4173 # Запускаем serve для SPA (поддерживает client-side routing) CMD ["npm", "run", "preview"]