Files
router-lists-ui/CI_TROUBLESHOOTING.md
T
2025-07-08 23:54:18 +07:00

3.0 KiB
Raw Blame History

CI/CD Troubleshooting Guide

Проблемы со сборкой Docker

1. Сборка зависает на npm install

Симптомы:

  • CI зависает на этапе RUN npm install
  • Время сборки превышает 20 минут
  • Ошибки сетевого подключения

Решения:

A. Использовать оптимизированный Dockerfile

# Основной оптимизированный
docker build -f Dockerfile .

# Быстрый с Alpine
docker build -f Dockerfile.fast .

# Простой тестовый
docker build -f Dockerfile.test .

B. Проверить сетевые настройки

# В CI добавить таймауты
npm config set fetch-timeout 300000
npm config set fetch-retry-mintimeout 20000
npm config set fetch-retry-maxtimeout 120000

C. Использовать кэширование

# В CI/CD файле
cache-from: type=gha
cache-to: type=gha,mode=max

2. Проблемы с Node.js версиями

Симптомы:

  • EBADENGINE Unsupported engine
  • Ошибки совместимости пакетов

Решения:

  • Обновить Dockerfile до Node.js 20
  • Проверить совместимость всех зависимостей

3. Проблемы с размером образа

Симптомы:

  • Слишком большой размер Docker образа
  • Медленная загрузка

Решения:

  • Использовать Alpine Linux (node:20-alpine)
  • Добавить .dockerignore
  • Использовать multi-stage builds

Быстрые решения

Вариант 1: Основной оптимизированный

# Использует обновленный Dockerfile с кэшированием
git push origin tabler

Вариант 2: Быстрый с Alpine

# Использовать Dockerfile.fast (уже исправлен)
git push origin tabler

Вариант 3: Локальная сборка для тестирования

# Собрать локально для проверки
docker build -t test-image .
docker run -p 3001:3001 test-image

Мониторинг CI/CD

Проверить статус сборки

  1. Зайти в Gitea → Repository → Actions
  2. Найти последний workflow
  3. Проверить логи на каждом этапе

Типичные времена сборки

  • Оптимизированный Dockerfile: 5-10 минут
  • Быстрый Dockerfile: 3-7 минут
  • С кэшированием: 2-5 минут (повторные сборки)

Контакты для поддержки

Если проблемы продолжаются:

  1. Проверить логи CI/CD
  2. Попробовать локальную сборку
  3. Создать issue с логами ошибок