Установка Orchestrator в закрытом контуре (без доступа к интернету)
В средах без доступа к интернету (закрытый контур) для развертывания Docker-образов требуется предварительная загрузка их на машине, имеющей доступ в сеть Интернет, с последующим физическим переносом на сервер.
Рекомендация: Используйте одинаковые версии Docker на обеих машинах, чтобы избежать возможных проблем с совместимостью формата образов.
Порядок действий
1. Подготовка на машине с доступом в интернет
- Авторизуйтесь в приватном реестре (если образы находятся в закрытом реестре, например
nexus.primo-rpa.ru:8000):
docker login nexus.primo-rpa.ru:8000-
Скопируйте файл
docker-compose.ymlв рабочую директорию. Теперь рабочая директория (например, /home/user/orchestrator) содержит docker-compose.yml. Все дальнейшие команды мы выполняем из нее. -
Загрузите Docker-образы:
docker compose pull2. Сохранение образов в архив
Убедитесь, что все образы на месте:
Вариант А — сохранить все образы в один файл (удобно для переноса):
docker save -o images.tar $(docker compose config --images)Вариант Б — сохранить каждый образ в отдельный файл (удобно при обновлении отдельных образов):
mkdir images
for img in $(docker compose config --images); do
docker save -o images/$(echo $img | tr '/:' '_').tar $img
doneРекомендуется также сохранить информацию о версиях образов:
docker images --format "table {{.Repository}}\t{{.Tag}}\t{{.ID}}" > images-version-info.txt3. Копирование на флеш-накопитель
Скопируйте созданные файлы на флеш-накопитель:
# Если образы в одном файле
cp images.tar images-version-info.txt /media/usb/
# Если в папке images
cp -r images images-version-info.txt /media/usb/
# Не забудьте также скопировать docker-compose.yml
cp docker-compose.yml /media/usb/4. Перенос на сервер в закрытом контуре
Подключите флеш-накопитель к серверу без доступа в интернет и скопируйте файлы:
# Создайте рабочую директорию
mkdir -p /opt/orchestrator
# Скопируйте файлы с флешки
cp /media/usb/images.tar /opt/orchestrator/
cp /media/usb/docker-compose.yml /opt/orchestrator/
cp /media/usb/images-version-info.txt /opt/orchestrator/
# (или cp -r /media/usb/images /opt/orchestrator/)5. Загрузка образов на сервере
Если использовался один файл:
cd /opt/orchestrator
docker load -i images.tarЕсли использовалось несколько файлов:
cd /opt/orchestrator/images
for f in *.tar; do docker load -i "$f"; doneПроверьте, что все образы загружены:
sudo docker images
# Сравните с содержимым images-version-info.txt6. Запуск Orchestrator
cd /opt/orchestrator
sudo docker compose up -dПроверка статуса:
sudo docker compose ps
# Все контейнеры должны быть в статусе "Up" или "healthy"Устранение возможных проблем
-
Ошибка:
no such file or directoryприdocker loadРешение: Проверьте, что файл существует и путь указан верно. Используйтеls -laдля проверки. -
Ошибка: конфликт имен образов при загрузке Решение: Убедитесь, что имена образов в
docker-compose.ymlи в tar-файлах совпадают. При загрузке отдельных файлов убедитесь, что нет лишних символов в именах.
Для больших образов (более 1 ГБ) рекомендуется использовать отдельные файлы — это упрощает повторную загрузку при обновлении только части образов и позволяет избежать ошибок при повреждении большого архива.
Важно
docker-compose upне умеет самостоятельно распаковыватьtar— сперва выполнитеdocker load- Загруженные образы будут доступны Docker Compose только после завершения
docker load - Сверьте теги образов в
docker-compose.ymlс теми, что были сохранены вtar— расхождения приведут к ошибкеUnable to find image