Открыть меню
Платформа Эра. Документация
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>/"