Publish Fast Tabler Docker image / build-and-push-fast (push) Failing after 5m40s
100 lines
3.0 KiB
Markdown
100 lines
3.0 KiB
Markdown
# CI/CD Troubleshooting Guide
|
||
|
||
## Проблемы со сборкой Docker
|
||
|
||
### 1. Сборка зависает на npm install
|
||
|
||
**Симптомы:**
|
||
- CI зависает на этапе `RUN npm install`
|
||
- Время сборки превышает 20 минут
|
||
- Ошибки сетевого подключения
|
||
|
||
**Решения:**
|
||
|
||
#### A. Использовать оптимизированный Dockerfile
|
||
```bash
|
||
# Основной оптимизированный
|
||
docker build -f Dockerfile .
|
||
|
||
# Быстрый с Alpine
|
||
docker build -f Dockerfile.fast .
|
||
|
||
# Простой тестовый
|
||
docker build -f Dockerfile.test .
|
||
```
|
||
|
||
#### B. Проверить сетевые настройки
|
||
```bash
|
||
# В CI добавить таймауты
|
||
npm config set fetch-timeout 300000
|
||
npm config set fetch-retry-mintimeout 20000
|
||
npm config set fetch-retry-maxtimeout 120000
|
||
```
|
||
|
||
#### C. Использовать кэширование
|
||
```yaml
|
||
# В 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: Основной оптимизированный
|
||
```bash
|
||
# Использует обновленный Dockerfile с кэшированием
|
||
git push origin tabler
|
||
```
|
||
|
||
### Вариант 2: Быстрый с Alpine
|
||
```bash
|
||
# Использовать Dockerfile.fast (уже исправлен)
|
||
git push origin tabler
|
||
```
|
||
|
||
### Вариант 3: Локальная сборка для тестирования
|
||
```bash
|
||
# Собрать локально для проверки
|
||
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 с логами ошибок |