# Этап 1: Установка зависимостей FROM node:20-alpine as deps WORKDIR /app # Копирование package.json и package-lock.json COPY package*.json ./ # Установка зависимостей с очисткой кеша RUN npm ci --omit=dev && npm cache clean --force # Этап 2: Сборка приложения FROM node:20-alpine as builder WORKDIR /app # Копирование package.json и package-lock.json COPY package*.json ./ # Установка всех зависимостей (включая dev) RUN npm ci # Копирование исходного кода COPY . . # Сборка приложения RUN npm run build # Этап 3: Финальный образ FROM node:20-alpine as runner WORKDIR /app # Копирование зависимостей продакшена COPY --from=deps /app/node_modules ./node_modules COPY --from=builder /app/.next ./.next COPY --from=builder /app/public ./public COPY --from=builder /app/package*.json ./ EXPOSE 3000 CMD ["npm", "start"]