fix sh
This commit is contained in:
parent
80c489a5bd
commit
1661dea57c
18
README.md
18
README.md
|
|
@ -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
114
start.sh
|
|
@ -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"
|
||||
|
|
|
|||
Loading…
Reference in New Issue