Обновление до 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