Files
bivekidaybot/Dockerfile
Bivekich b7bf3ab12c 🐛 Исправление Docker сборки
🔧 Исправления:
- Обновлена версия Node.js с 18 до 20 (поддержка NestJS 11+)
- Исправлена установка зависимостей в builder stage (нужны dev зависимости для сборки)
- Оптимизирована финальная стадия (только production зависимости)
- Восстановлен файл stack.env.example
- Использован --omit=dev вместо устаревшего --only=production

 Теперь Docker сборка должна работать корректно
2025-06-26 21:47:03 +03:00

49 lines
1.5 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.

# Многоступенчатая сборка для оптимизации размера образа
FROM node:20-alpine AS builder
# Устанавливаем рабочую директорию
WORKDIR /app
# Копируем файлы зависимостей
COPY package*.json ./
# Устанавливаем ВСЕ зависимости (включая dev для сборки)
RUN npm ci && npm cache clean --force
# Копируем исходный код
COPY . .
# Собираем приложение
RUN npm run build
# Финальный образ
FROM node:20-alpine AS production
# Создаем пользователя для безопасности
RUN addgroup -g 1001 -S nodejs
RUN adduser -S nestjs -u 1001
# Устанавливаем рабочую директорию
WORKDIR /app
# Копируем package files
COPY package*.json ./
# Устанавливаем только production зависимости
RUN npm ci --omit=dev && npm cache clean --force
# Копируем собранное приложение из builder
COPY --from=builder --chown=nestjs:nodejs /app/dist ./dist
# Устанавливаем пользователя
USER nestjs
# Открываем порт
EXPOSE 3000
# Проверка здоровья
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
CMD node -e "require('http').get('http://localhost:3000/health', (res) => { process.exit(res.statusCode === 200 ? 0 : 1) })"
# Запускаем приложение
CMD ["npm", "run", "start:prod"]