Ручное обновление
Процедура обновления
1. Загрузить файл обновления в любую папку на сервере, который необходимо обновить
2. Скопировать файл обновления в контейнер
$ docker cp <upfile_name>.zip \ (1)
<container_name>:<dest_path> (2) (3)
1 | <upfile_name> – имя файла обновления. |
2 | <container_name> – имя контейнера. |
3 | <dest_path> – папка назначения. |
3. Распаковать файл обновления
# unzip -q <upfile_name>.zip (1)
1 | <upfile_name> – имя файла обновления |
4. Перейти в новый каталог <upfile_name_dir>
5. Выполнить скрипт установки прав на файлы обновления
# sh r_set_permissions
6. Получить информацию об обновлении. Из которой потребуются значения ключей product
и product_name
для следующей операции.
# ./era_installer product
Например:
# ./era_installer product
07:38:03.872 Era. Product info.
assembly_date: 2019-09-30T12:11:51.896Z
product: 1.9.4
product_name: era
r: 1.12.0
rtx: 3.9.0
app-configuration: 0.1.2
app-notification: 1.0.5
fe-agat: 1.0.0
fe-autoprovision: 2.0.0
fe-calls-statistic: 2.0.0
fe-chronological-reports: 2.1.0
fe-contacts-manager: 2.0.0
fe-data-manager: 2.1.0
fe-monitor: 2.0.0
fe-operative-reports: 2.2.0
fe-reporter: 0.1.1
fe-root: 2.0.1
fe-script-editor: 2.0.0
fe-selector: 2.0.0
fe-vendor-package: 1.3.0
nrr: 2.0.0
webcfg: 2.0.0
-
product – версия продукта
-
product_name – имя продукта
7. Выполнить установку обновления.
# ./era_installer upgrade instdir=/usr/lib/era_platform/<product_name>__<product> (1) (2) (3)
1 | instdir – указывает на каталог с бинарными файлами платформы соответствующей версии. |
2 | <product_name> – название продукта полученное из информации об обновлении. |
3 | <product> – версия продукта полученная из информации об обновлении. |
Например:
# ./era_installer upgrade instdir=/usr/lib/era_platform/era__1.9.4
8. Перезапустить систему
# era restart
1. Загрузить файл нового образа в любую папку на сервере, который необходимо обновить
2. Загрузить новый образ в docker
$ sudo docker load -i <image_name>.tar.gz (1)
1 | <image_name> - имя файла нового образа системы |
3. Узнать имя контейнера.
$ sudo docker ps -a
В результате будут отображены все созданные контейнеры, среди них нужно выбрать целевой.
4. Узнать имена томов используемые контейнером.
$ sudo docker inspect -f '{{range .Mounts}}{{.Name}} | {{end}}' <container_name> (1)
1 | <container_name> – имя контейнера. |
Например:
$ sudo docker inspect -f '{{range .Mounts}}{{.Name}} | {{end}}' eraer
era_supv_vol | era_var_vol | (1)
1 | era_supv_vol и era_var_vol – имена томов. |
5. Останавить текущий контейнер
$ sudo docker stop <container_name> (1)
1 | <container_name> – имя контейнера. |
6. Запустить новый контейнер. При этом указать существующие тома (volume).
$ sudo docker run --name <container_name> \ (1)
-v <r_volume_name>:/usr/lib/era \ (2)
-v <r_supv_volume_name>:/etc/supervisor/ \ (3)
--tmpfs /run:rw,noexec,nosuid,size=4096k
-ditP
--restart unless-stopped
--cap-add=NET_ADMIN
--network host
<image_name>:<image_tag> (4) (5)
1 | <container_name> – имя создаваемого контейнера. |
2 | <r_volume_name> – том для рабочей директории платформы. |
3 | <r_supv_volume_name> – том для конфигураций supervisord. |
4 | <image_name> – имя образа. |
5 | <image_tag> –тэг образа. |
Например:
$ sudo docker run --name eraplatform \
-v era_vol:/usr/lib/era \
-v era_supv_vol:/etc/supervisor/ \
--tmpfs /run:rw,noexec,nosuid,size=4096k \
-ditP \
--restart unless-stopped \
--cap-add=NET_ADMIN \
--network host \
era:1.2.0
7. Удалить старый контейнер (опционально).
$ docker rm <old_container_name> (1)
1 | <old_container_name> – имя старого контейнера. |