chore: Optimize Dockerfile for improved build performance and update Gitea workflows with Docker Buildx support
Publish Tabler Docker image / build-and-push-tabler (push) Has been cancelled
Publish Fast Tabler Docker image / build-and-push-fast (push) Failing after 5m52s

This commit is contained in:
2025-07-08 23:44:11 +07:00
parent 68d7d55c8b
commit 97711f26cb
7 changed files with 310 additions and 11 deletions
+100
View File
@@ -0,0 +1,100 @@
# CI/CD Troubleshooting Guide
## Проблемы со сборкой Docker
### 1. Сборка зависает на npm install
**Симптомы:**
- CI зависает на этапе `RUN npm install`
- Время сборки превышает 20 минут
- Ошибки сетевого подключения
**Решения:**
#### A. Использовать оптимизированный Dockerfile
```bash
# Основной оптимизированный
docker build -f Dockerfile .
# Быстрый с Yarn
docker build -f Dockerfile.fast .
```
#### 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: Быстрый с Yarn
```bash
# Переименовать Dockerfile.fast в Dockerfile
mv Dockerfile.fast Dockerfile
git add Dockerfile
git commit -m "Switch to fast Dockerfile"
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 с логами ошибок