Обновление системы с помощью Docker¶
Совет
Ниже приведен пример обновления системы с версии 2.6 на 2.7
Предварительные условия¶
Сервер, на котором размещена обновляемая версия Юниверс DG, имеет доступ к интернету.
Установлен Git.
Установлен Docker Compose (версия выше 1.29).
Проект Юниверс DG был клонирован на сервер.
Обновление системы¶
Предупреждение
Начиная с версии 2.5 был осуществлен переход с Elasticsearch на OpenSearch. Если обновлять ветку, имея поднятый docker, то старый контейнер elasticsearch будет препятствовать дальнейшим запускам. Поэтому рекомендуется выполнить нижеописанные действия
Перед обновлением остановите работу образа Docker Compose через команду
docker-compose down
Поднять контейнеры после обновления возможно через команду: docker-compose up --force-recreate -d --remove-orphans. Последняя опция очищает Elasticsearch контейнер
Войдите в репозиторий Gitlab (доступ к репозиторию с дистрибутивом вашего продукта должен быть получен заранее согласно договору поставки).
Переключитесь на ветку release/2.7
Извлеките проект. Команда
git pull
Выполните миграцию на Opensearch с потерей или сохранением данных (см. инструкцию ниже).
Перейдите в каталог с кодом. Пример команды:
cd universe-dg-deploy
При необходимости в файле .env, расположенном в корне проекта, измените параметры для БД и параметры портов. Пример параметров ниже.
Для запуска системы используйте команду:
docker-compose up -d
Пример файла .env:
BACKEND_IMAGE=docker.universe-data.ru/unidata-dg/backend:release-2-9-5e0003ce
FRONTEND_IMAGE=docker.universe-data.ru/unidata-dg/frontend:release-2-9-ac16b8c8
OPENSEARCH_HTTP_OUTER_PORT=19200
DG_POSTGRES_USER=postgres
DG_POSTGRES_PASSWORD=postgres
DG_POSTGRES_DB_NAME=postgres
POSTGRES_OUTER_PORT=15432
ORIENTDB_HTTP_OUTER_PORT=12480
ORIENTDB_OUTER_PORT=12424
ORIENTDB_DB_NAME=dg
FRONTEND_PORT=8080
BACKEND_PORT=9080
#nginx.conf
BACKEND_ADDRESS=http://dg:8080
CLIENT_MAX_BODY_SIZE=100m
PROXY_SEND_TIMEOUT=600s
PROXY_READ_TIMEOUT=600s
SEND_TIMEOUT=600s
#TIMEZONE=Europe/Moscow
EMAIL_FRONTEND_URL=''
EMAIL_ENABLED=false
EMAIL_SERVER_HOST=localhost
EMAIL_SERVER_PORT=5025
EMAIL_SSL_ENABLE=true
EMAIL_STARTTLS_ENABLE=false
EMAIL_USERNAME=universe@example.com
EMAIL_PASSWORD=password
BULK_XLSX_IMPORT_BLOCK_SIZE=1000
MODULES_BLACKLIST=org.unidata.dg.crawler,com.universe.dg.dis.crawlers
GUEST_MODE=false
DG_DQ_ENSURE_MODEL=false
DG_DIS_UPDATE_PROFILES_PROJECTS_JOB_DISABLED=true
DG_DIS_UPDATE_PROFILES_PROJECTS_CRONEX=0 0 0/1 * * ?
DG_DIS_UPDATE_PROFILES_URL=http://localhost/list/profiles
DG_DIS_UPDATE_PROJECTS_URL=http://localhost/list/projects
Переход с ElasticSearch на OpenSearch¶
Примечание
Шаги по переходу на OpenSearch требуются, если система Юниверс DG обновляется с версии 2.4 и старше на версию 2.5 и новее. Если переход уже был выполнен - шаги пропускаются
Переход на OpenSearch с потерей данных¶
Поскольку данные не будут перенесены, выполните операцию переиндексации данных, а при наличии правил качества - операцию переприменения данных.
Важные примечания:
Если в качестве хранилища для аудита выбран поисковой движок, журнал событий будет утерян — его невозможно восстановить из БД, даже если она также указана в качестве хранилища.
Переход на OpenSearch с переносом данных¶
В docker-compose конфигурации контейнера Opensearch укажите существующий volume с данными Elasticsearch — dg-elasticsearch-data:/usr/share/opensearch/data.
В случае если необходимо избавиться от упоминания Elastic, то можно оставить volume по умолчанию (dg-opensearch-data), выполнив одно из двух действий:
Клонировать volume. Пример:
docker run --rm \ -v dg-elasticsearch-data:/original \ -v dg-opensearch-data:/migration \ ubuntu:latest \ bash -c "cp -R /original/* /migration/"
Переименовать volume:
mv /var/lib/docker/volumes/dg-elasticsearch-data /var/lib/docker/volumes/dg-opensearch-data