Открыть меню
Toggle preferences menu
Открыть персональное меню
Вы не представились системе
Your IP address will be publicly visible if you make any edits.

Обновление платформы через апгрейд докер-контейнера

Материал из Платформа Эра. Документации

В случаях, когда обновление через API невозможно, необходимо провести операцию апгрейда с заменой docker-образа и пересозданием контейнера.

Все данные, сохраненные в БД, а также файлы и каталоги в волюмах на хосте, остаются нетронутыми, и после запуска новой версии системы сохраняются и используются.

Важная информация

При обновлении платформы на версию 1.9 и выше, с более низких версий, после обновления потребуется переактивация лицензии. За токеном активации лицензии необходимо обратиться к вашему менеджеру. После переактивации лицензии, необходимо заново перераспределить её из мастер домена в продуктовые домены, а так же перераспределить лицензируемые параметры в самих продуктовых доменах.

Шаг 1. Выяснить текущее имя контейнера с платформой.

Это имя формата "era<Postfix>", заданное при установке системы или при прошлом апгрейде.

Обнаружить его можно, выполнив команду:

docker ps -a

и найдя активный контейнер с указанным форматом имени.

Шаг 2. Сгенерировать строку запуска контейнера.

Для генерации строки запуска контейнера, необходимо использовать скрипт в папке со скриптом установки платформы:

bash gen_container_cmd_ssh.sh --user=era --host=192.168.0.1 --port=22

данный скрипт подключается с помощью SSH к серверу с установленной платформой и формирует в качестве резульата строку запуска.

ВАЖНО! Проверить в полученной команде наличия параметра "--restart unless-stopped". Без него контейнер не стартанет после будущего обновления.

Шаг 3. Загрузить новый образ

docker load -i <ImageFileName>

заменив "<ImageFileName>" на имя docker-образа с новой версией. Образ имеет имя формата "era_<VERSION>_docker.tar.gz".

Шаг 4. Остановить текущий контейнер:

docker container stop <CurrentContainerName>

Шаг 5. Запустить новый контейнер

Выполняем команду из пункта 2, заменив имя контейнера на новое. Например, если оригинальная команда была:

docker run --name era<Postfix1> ...

то она становится:

docker run --name era<Postfix2> ...

Новое имя контейнера необходимо для возможности быстрого отката на предыдущую версию. Второй контейнер с тем же именем не может быть создан и запущен. После запуска и проверки корректности состояния предыдущий контейнер можно удалить.

Шаг 6. Проверить возможные линки на другие директории

Для выполнения команд внутри контейнера необходимо запустить sh следующей командой:

docker exec -it <mycontainer> sh

era_meet: в рабочей директории "/var/lib/era/<MeetNode>/"