Установка Orchestrator в закрытом контуре (без доступа к интернету)
В средах без доступа к интернету (закрытый контур) для развертывания Docker-образов требуется предварительная загрузка их на машине, имеющей доступ в сеть Интернет, с последующим физическим переносом на сервер.
Рекомендация: Используйте одинаковые версии Docker на обеих машинах, чтобы избежать возможных проблем с совместимостью формата образов.
Начиная с версии 1.26.7, в docker-compose.yml добавлена поддержка TLS.
Теперь Оркестратор можно развернуть с шифрованием соединений (HTTPS) штатными
средствами. Для использования TLS необходимо предварительно подготовить
сертификаты.
Порядок действий
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. Настройка TLS (опционально)
Важно: Данный раздел актуален только для версии Orchestrator 1.26.7 и выше.
Если требуется запустить Оркестратор с шифрованием соединений (HTTPS), необходимо разместить файлы сертификатов и конфигурации nginx в рабочей директории /opt/orchestrator рядом с docker-compose.yml.
Структура директории должна выглядеть следующим образом:
/opt/orchestrator/
├── docker-compose.yml
├── nginx.conf # конфигурация nginx с поддержкой HTTPS
├── cert1.crt # публичный сертификат
└── cert1.rsa # приватный ключ (может иметь расширение .key)Важно: Файлы сертификатов должны называться именно cert1.crt и
cert1.rsa, либо необходимо изменить соответствующие пути в файле
nginx.conf.
Где взять сертификаты:
Сертификаты и файл nginx.conf можно получить:
- из Nexus-репозитория (рекомендуемый способ для закрытых контуров);
- или сгенерировать самостоятельно (для тестовых сред).
Если TLS не требуется, сертификаты можно не добавлять — Оркестратор запустится по HTTP.
7. Запуск Orchestrator
cd /opt/orchestrator
sudo docker compose up -dПроверка статуса:
sudo docker compose ps
# Все контейнеры должны быть в статусе "Up" или "healthy"После запуска Оркестратор будет доступен:
- Без TLS:
http://<IP-сервера>:5000 - С TLS:
https://<IP-сервера>(порт 443)
Устранение возможных проблем
-
Ошибка:
no such file or directoryприdocker loadРешение: Проверьте, что файл существует и путь указан верно. Используйтеls -laдля проверки. -
Ошибка: конфликт имен образов при загрузке Решение: Убедитесь, что имена образов в
docker-compose.ymlи в tar-файлах совпадают. При загрузке отдельных файлов убедитесь, что нет лишних символов в именах. -
Ошибка: TLS не работает, соединение по HTTP Решение: Проверьте, что файлы сертификатов (
cert1.crt,cert1.rsa) иnginx.confприсутствуют в рабочей директории. Убедитесь, что имена файлов совпадают с ожидаемыми в конфигурации.
Для больших образов (более 1 ГБ) рекомендуется использовать отдельные файлы — это упрощает повторную загрузку при обновлении только части образов и позволяет избежать ошибок при повреждении большого архива.
Важно
docker-compose upне умеет самостоятельно распаковыватьtar— сперва выполнитеdocker load- Загруженные образы будут доступны Docker Compose только после завершения
docker load - Сверьте теги образов в
docker-compose.ymlс теми, что были сохранены вtar— расхождения приведут к ошибкеUnable to find image