This commit is contained in:
user 2025-07-25 16:38:17 +03:00
parent 80c489a5bd
commit 1661dea57c
2 changed files with 130 additions and 6 deletions

View File

@ -162,6 +162,24 @@ curl http://localhost:15100/api/v3/node/peers | jq
### Проблемы и решения:
**Ошибка сборки Converter (TLS handshake timeout):**
```bash
# Автоматические решения скрипта:
# - 3 попытки сборки с увеличенными таймаутами
# - Очистка Docker cache между попытками
# - Перезапуск Docker daemon при повторных ошибках
# - Установка продолжится без converter если сборка не удалась
# Ручная сборка converter после установки:
cd /opt/my-network/my-network/converter-module/converter
docker build --network=host --build-arg HTTP_TIMEOUT=300 -t my-network-converter:latest .
# Проверка и сброс Docker настроек:
sudo systemctl restart docker
docker info | grep -i registry
docker system prune -f
```
**Ошибка клонирования репозиториев:**
```bash
# Проверьте доступность git.projscale.dev

114
start.sh
View File

@ -911,6 +911,58 @@ setup_project() {
log_success "Проект настроен в $PROJECT_DIR/my-network"
}
# Функция для проверки доступности Docker registry
check_docker_registry() {
log_info "Проверка доступности Docker registry..."
# Проверяем доступность registry.docker.io
if timeout 30 curl -s --connect-timeout 10 https://registry.docker.io/v2/ >/dev/null 2>&1; then
log_success "Docker registry доступен"
return 0
else
log_warn "Docker registry недоступен или медленно отвечает"
return 1
fi
}
# Функция для настройки Docker daemon timeout
configure_docker_timeout() {
log_info "Настройка Docker timeout для сетевых операций..."
# Создаем или обновляем Docker daemon config
local docker_config="/etc/docker/daemon.json"
local temp_config="/tmp/daemon.json.tmp"
if [ -f "$docker_config" ]; then
# Читаем существующий конфиг
cp "$docker_config" "$temp_config"
else
# Создаем новый конфиг
echo '{}' > "$temp_config"
fi
# Добавляем настройки timeout с помощью jq если доступен
if command -v jq >/dev/null 2>&1; then
jq '. + {
"registry-mirrors": [],
"insecure-registries": [],
"max-concurrent-downloads": 3,
"max-concurrent-uploads": 3,
"default-runtime": "runc"
}' "$temp_config" > "${temp_config}.new" && mv "${temp_config}.new" "$temp_config"
if sudo cp "$temp_config" "$docker_config" 2>/dev/null; then
log_info "Docker daemon конфигурация обновлена"
# Перезапускаем Docker только если это безопасно
if ! docker ps >/dev/null 2>&1 || [ "$(docker ps -q | wc -l)" -eq 0 ]; then
sudo systemctl reload docker 2>/dev/null || true
fi
fi
fi
rm -f "$temp_config" 2>/dev/null
}
# Сборка converter образа
build_converter_image() {
log_info "🔧 Сборка converter образа из converter-module..."
@ -934,13 +986,67 @@ build_converter_image() {
# Переходим в папку converter для сборки
cd converter
# Сборка converter образа из оригинального репозитория
# Настраиваем Docker timeout
configure_docker_timeout
# Проверяем доступность registry
if ! check_docker_registry; then
log_warn "Docker registry недоступен, пробуем продолжить с увеличенным timeout"
fi
# Сборка converter образа из оригинального репозитория с retry логикой
log_info "Сборка Docker образа для converter..."
if docker build -t my-network-converter:latest . ; then
# Попытки сборки с retry
local max_attempts=3
local attempt=1
local success=false
while [ $attempt -le $max_attempts ] && [ "$success" = false ]; do
log_info "Попытка сборки $attempt из $max_attempts..."
# Сборка с увеличенными таймаутами и дополнительными параметрами
if docker build \
--network=host \
--build-arg BUILDKIT_PROGRESS=plain \
--build-arg HTTP_TIMEOUT=300 \
--build-arg HTTPS_TIMEOUT=300 \
-t my-network-converter:latest . ; then
log_success "Converter образ собран: my-network-converter:latest"
success=true
else
log_error "Ошибка сборки converter образа"
return 1
log_warn "Попытка $attempt неудачна"
if [ $attempt -lt $max_attempts ]; then
log_info "Ожидание 15 секунд перед следующей попыткой..."
sleep 15
# Очистка Docker build cache и системы при неудачной попытке
log_info "Очистка Docker cache..."
docker builder prune -f >/dev/null 2>&1 || true
docker system prune -f >/dev/null 2>&1 || true
# Попытка сброса сетевых настроек Docker
if [ $attempt -eq 2 ]; then
log_info "Перезапуск Docker daemon для сброса сетевых настроек..."
systemctl restart docker >/dev/null 2>&1 || true
sleep 10
fi
fi
attempt=$((attempt + 1))
fi
done
if [ "$success" = false ]; then
log_error "Не удалось собрать converter образ после $max_attempts попыток"
log_warn "Возможные причины:"
log_warn "1. Проблемы с подключением к Docker Hub"
log_warn "2. Сетевые проблемы на сервере"
log_warn "3. Временные проблемы Docker Registry"
log_info "Установка продолжится без converter образа"
log_info "Converter можно собрать позже командой:"
log_info "cd $PROJECT_DIR/my-network/converter-module/converter && docker build -t my-network-converter:latest ."
fi
cd "$PROJECT_DIR/my-network"