Обновление системы с помощью 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/universe-dg/backend:release-2-7-9cadf848
FRONTEND_IMAGE=docker.universe-data.ru/universe-dg/frontend:release-2-7-76c1e912
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
BACKEND_ADDRESS=http://dg:8080
#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
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