Устранение неполадок
Распространённые проблемы и их решения. В случае сомнений начните с rdc doctor, чтобы выполнить комплексную диагностику.
Ошибка подключения SSH
- Убедитесь, что можете подключиться вручную:
ssh -i ~/.ssh/id_ed25519 deploy@203.0.113.50 - Выполните
rdc context scan-keys server-1для обновления ключей хоста - Проверьте соответствие порта SSH:
--port 22 - Проверьте подключение:
rdc machine test-connection --ip 203.0.113.50 --user deploy
Несоответствие ключа хоста
Если сервер был переустановлен или его SSH-ключи изменились, вы увидите “host key verification failed”:
rdc context scan-keys server-1
Эта команда получает новые ключи хоста и обновляет вашу конфигурацию.
Ошибка настройки машины
- Убедитесь, что SSH-пользователь имеет доступ sudo без пароля, или настройте
NOPASSWDдля необходимых команд - Проверьте доступное дисковое пространство на сервере
- Запустите с
--debugдля подробного вывода:rdc context setup-machine server-1 --debug
Ошибка создания репозитория
- Убедитесь, что настройка завершена: директория хранилища данных должна существовать
- Проверьте дисковое пространство на сервере
- Убедитесь, что бинарный файл renet установлен (при необходимости повторите настройку)
Сервисы не запускаются
- Проверьте синтаксис Rediaccfile: он должен быть корректным Bash
- Убедитесь, что файлы
docker composeиспользуютnetwork_mode: host - Проверьте доступность Docker-образов (рассмотрите
docker compose pullвprep()) - Просмотрите логи контейнеров через Docker-сокет репозитория:
rdc term server-1 my-app -c "docker logs <container-name>"
Или просмотрите все контейнеры:
rdc machine containers server-1
Ошибки отказа в доступе
- Операции с репозиториями требуют root-доступа на сервере (renet запускается через
sudo) - Убедитесь, что ваш SSH-пользователь состоит в группе
sudo - Проверьте правильность прав доступа к директории хранилища данных
Проблемы с Docker-сокетом
У каждого репозитория свой собственный Docker daemon. При ручном выполнении Docker-команд необходимо указать правильный сокет:
# С помощью rdc term (настроено автоматически):
rdc term server-1 my-app -c "docker ps"
# Или вручную с указанием сокета:
docker -H unix:///var/run/rediacc/docker-2816.sock ps
Замените 2816 на идентификатор сети вашего репозитория (можно найти в config.json или через rdc repo status).
Контейнеры созданы на неправильном Docker daemon
Если ваши контейнеры появляются на Docker daemon хост-системы вместо изолированного daemon репозитория, наиболее распространённая причина — использование sudo docker внутри Rediaccfile.
sudo сбрасывает переменные окружения, поэтому DOCKER_HOST теряется и Docker использует системный сокет (/var/run/docker.sock) по умолчанию. Rediacc блокирует это автоматически, но если вы столкнулись с этой проблемой:
- Используйте
dockerнапрямую — функции Rediaccfile уже выполняются с достаточными привилегиями - Если необходимо использовать sudo, используйте
sudo -E dockerдля сохранения переменных окружения - Проверьте ваш Rediaccfile на наличие команд
sudo dockerи удалитеsudo
Терминал не работает
Если rdc term не может открыть окно терминала:
- Используйте встроенный режим с
-cдля прямого выполнения команд:rdc term server-1 -c "ls -la" - Принудительно используйте внешний терминал с
--external, если встроенный режим вызывает проблемы - На Linux убедитесь, что установлен
gnome-terminal,xtermили другой эмулятор терминала
Запуск диагностики
rdc doctor
Эта команда проверяет вашу среду, установку renet, конфигурацию контекста и статус аутентификации. Каждая проверка сообщает OK, Warning или Error с кратким пояснением.