Обновление до 2024.5
Обновление до 2024.5 требует выполнения ряда дополнительных шагов как перед обновлением, так и после обновления перед запуском системы.
Перед обновлением
Обновление настроек через новый Wizard
Перед обновлением обязательно выполнить обновление настроек через новый Wizard согласно инструкции по обновлению (с параметром update).
docker run -i -t -v /opt/stingray:/opt/docker-files cr.yandex/crp8p3a3l1ri2431n3ce/release/wizard:latest update
После выполнения необходимо проверить наличие директорий на хостовой системе:
service/android/Stingray.avd
service/android/api30/AndroidSdk/
Миграция базы данных PostgreSQL с 12 версии на 14
Перед обновлением необходимо произвести миграцию базы данных PostgreSQL с 12 версии до 14.
-
Выполнить остановку Engine-контейнеров.
docker exec stingray-maintenance django-admin maintenance engines preserve -
Выполнить полную остановку Системы.
docker-compose down -
Сделать бэкап текущего файла docker-compose.yml.
cp docker-compose.yml docker-compose.yml.copy -
Внести необходимые изменения в файл docker-compose.yml - изменить блок
postgresи добавить блокpostgres14.postgres: image: cr.yandex/crp8p3a3l1ri2431n3ce/release/postgresql:12.15-alpine container_name: stingray-postgres restart: unless-stopped security_opt: - no-new-privileges read_only: true tmpfs: - /run/postgresql - /tmp networks: - stingray-network env_file: - .env settings/prod.env volumes: - ./service/backup:/backup - ./service/postgresql/data:/var/lib/postgresql/data postgres14: image: cr.yandex/crp8p3a3l1ri2431n3ce/release/postgresql:14.11-alpine container_name: stingray-postgres14 restart: unless-stopped security_opt: - no-new-privileges read_only: true tmpfs: - /var/run/postgresql/ - /tmp networks: - stingray-network env_file: - .env - settings/prod.env volumes: - ./service/backup:/backup - ./service/postgresql14/data:/var/lib/postgresql/data -
Создать дополнительные директории.
mkdir service/postgresql14 && \ mkdir service/backup -
Выполнить скачивание дополнительных образов.
docker pull cr.yandex/crp8p3a3l1ri2431n3ce/release/postgresql:12.15-alpine && \ docker pull cr.yandex/crp8p3a3l1ri2431n3ce/release/postgresql:14.11-alpine -
Выполнить запуск контейнера с базой данных PostgreSQL 12.
docker-compose up -d postgres -
Выполнить бэкап базы данных.
docker-compose exec -it postgres /bin/bash -c 'pg_dumpall -U $POSTGRES_USER > /backup/backup.sql'Переменная
$POSTGRES_USERбудет получена из окружения контейнера. Проверить корректность созданного бэкапа можно по пути в$HOME_STINGRAY/service/backupна исходном сервере. -
Остановить контейнер с базой данных PostgreSQL 12.
docker-compose stop postgres -
Выполнить запуск контейнера с базой данных PostgreSQL 14.
docker-compose up -d postgres14 -
Выполнить восстановление базы данных из бэкапа.
docker-compose exec -it postgres14 /bin/bash -c 'psql -d $POSTGRES_DB -U $POSTGRES_USER < /backup/backup.sql'Переменные
$POSTGRES_DB,$POSTGRES_USERбудут получены из окружения контейнера. -
Остановить контейнер с базой данных PostgreSQL 14.
docker-compose stop postgres14 -
Удалить экземпляр контейнера c PostgreSQL 14.
docker-compose rm postgres14 -
Выполнить перемещение папок с базами данных в файловой системе.
mv service/postgresql service/postgresql12 && \ mv service/postgresql14 service/postgresql -
Восстановить исходный файл docker-compose.yml.
mv docker-compose.yml.copy docker-compose.yml -
Перетегировать образ.
docker pull cr.yandex/crp8p3a3l1ri2431n3ce/release/postgresql:latestПри выполнении этого действия, образ
cr.yandex/crp8p3a3l1ri2431n3ce/release/postgresql:14.11-alpineполучит второй тегcr.yandex/crp8p3a3l1ri2431n3ce/release/postgresql:latest. -
Выполнить запуск проекта.
docker-compose up -d -
Подключиться к базе данных и выполнить восстановление пароля.
docker-compose exec -it postgres /bin/bash -c 'psql -d $POSTGRES_DB -U $POSTGRES_USER' ALTER USER $POSTGRES_USER WITH PASSWORD '$POSTGRES_PASSWORD';При выполнении команды
ALTER USERпеременные$POSTGRES_USER,$POSTGRES_PASSWORDнеобходимо взять из файла settings/prod.env. -
Проверить работоспособность системы и удалить остатки бэкапов и вспомогательных папок.
Обновление Wizard
-
Для работы сервиса MARIVANNA в файле settings/prod.env необходимо указать корректные данные.
MARIVANNA_CLIENT_ID MARIVANNA_CLIENT_SECRET MARIVANNA_BASE_URL STINGRAY_SERVICES_AUTH_URL -
Для корректной работы центра лицензирования.
STINGRAY_LICENSE_CENTER_PUBLIC_KEY=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAun4nI9ETYpDUPQ/TkudHBkcjveHFG1N6s1SQS8MeoSpWKsnY5xGU4lKAlFgvMJMr+eAiyQSKvLRL9dJxUxexlQpoCJpf0lcf/Aq21qUI+k4sfSxMY+iWSPGDH16EpUeOMK0xHPKmVm/EoaF85mbWCaxrZcnFjGgCE0HMx+Pqv6qEEqXj86UTXNFuDqZd5xsEnMaoCYlBc1xvjz0rHWEQr9rNGt5EMw97gmD2DRDc+qMmux2S3wI5t9BG2kHgpqaunyMGPiwAcQrmgH44sxgHv1iDwPd/QmG9DkvTjuMxOqVX63sKxP4HF3FmIXaiWw3VEDBTziD1K/3I5mVv2jdxGwIDAQAB
После обновления, перед запуском
После обновления, перед запуском системы требуется выполнение следующих шагов.
-
Необходимо выполнить целевой пулл проекта
cr.yandex/crp8p3a3l1ri2431n3ce/release/postgresql cr.yandex/crp8p3a3l1ri2431n3ce/release/rabbitmq cr.yandex/crp8p3a3l1ri2431n3ce/release/redis cr.yandex/crp8p3a3l1ri2431n3ce/release/nginxили скачать дополнительные актуальные образы на машину.
docker-compose pull -
Удалить папку с данными
dataиз rabbitmq.rm -rf $HOME_STINGRAY/service/rabbitmq/data