Перейти к содержанию

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

  1. Выполнить остановку Engine-контейнеров.

    docker exec stingray-maintenance django-admin maintenance engines preserve
    
  2. Выполнить полную остановку Стингрей.

    docker-compose down
    
  3. Сделать бэкап текущего файла docker-compose.yml.

    cp docker-compose.yml docker-compose.yml.copy
    
  4. Внести необходимые изменения в файл 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
    
  5. Создать дополнительные директории.

    mkdir service/postgresql14 && \
    mkdir service/backup
    
  6. Выполнить скачивание дополнительных образов.

    docker pull cr.yandex/crp8p3a3l1ri2431n3ce/release/postgresql:12.15-alpine && \
    docker pull cr.yandex/crp8p3a3l1ri2431n3ce/release/postgresql:14.11-alpine
    
  7. Выполнить запуск контейнера с базой данных PostgreSQL 12.

    docker-compose up -d postgres
    
  8. Выполнить бэкап базы данных.

    docker-compose exec -it postgres /bin/bash -c 'pg_dumpall -U $POSTGRES_USER > /backup/backup.sql'
    

    Переменная $POSTGRES_USER будет получена из окружения контейнера. Проверить корректность созданного бэкапа можно по пути в $HOME_STINGRAY/service/backup на исходном сервере.

  9. Остановить контейнер с базой данных PostgreSQL 12.

    docker-compose stop postgres
    
  10. Выполнить запуск контейнера с базой данных PostgreSQL 14.

    docker-compose up -d postgres14
    
  11. Выполнить восстановление базы данных из бэкапа.

    docker-compose exec -it postgres14 /bin/bash -c 'psql -d $POSTGRES_DB -U $POSTGRES_USER < /backup/backup.sql'
    

    Переменные $POSTGRES_DB, $POSTGRES_USER будут получены из окружения контейнера.

  12. Остановить контейнер с базой данных PostgreSQL 14.

    docker-compose stop postgres14
    
  13. Удалить экземпляр контейнера c PostgreSQL 14.

    docker-compose rm postgres14
    
  14. Выполнить перемещение папок с базами данных в файловой системе.

    mv service/postgresql service/postgresql12 && \
    mv service/postgresql14 service/postgresql
    
  15. Восстановить исходный файл docker-compose.yml.

    mv docker-compose.yml.copy docker-compose.yml
    
  16. Перетегировать образ.

    docker pull cr.yandex/crp8p3a3l1ri2431n3ce/release/postgresql:latest
    

    При выполнении этого действия, образ cr.yandex/crp8p3a3l1ri2431n3ce/release/postgresql:14.11-alpine получит второй тег cr.yandex/crp8p3a3l1ri2431n3ce/release/postgresql:latest.

  17. Выполнить запуск проекта.

    docker-compose up -d
    
  18. Подключиться к базе данных и выполнить восстановление пароля.

    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.

  19. Проверить работоспособность системы и удалить остатки бэкапов и вспомогательных папок.

Обновление Wizard

  1. Для работы сервиса MARIVANNA в файле settings/prod.env необходимо указать корректные данные.

    MARIVANNA_CLIENT_ID
    MARIVANNA_CLIENT_SECRET
    MARIVANNA_BASE_URL
    STINGRAY_SERVICES_AUTH_URL
    
  2. Для корректной работы центра лицензирования.

    STINGRAY_LICENSE_CENTER_PUBLIC_KEY=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAun4nI9ETYpDUPQ/TkudHBkcjveHFG1N6s1SQS8MeoSpWKsnY5xGU4lKAlFgvMJMr+eAiyQSKvLRL9dJxUxexlQpoCJpf0lcf/Aq21qUI+k4sfSxMY+iWSPGDH16EpUeOMK0xHPKmVm/EoaF85mbWCaxrZcnFjGgCE0HMx+Pqv6qEEqXj86UTXNFuDqZd5xsEnMaoCYlBc1xvjz0rHWEQr9rNGt5EMw97gmD2DRDc+qMmux2S3wI5t9BG2kHgpqaunyMGPiwAcQrmgH44sxgHv1iDwPd/QmG9DkvTjuMxOqVX63sKxP4HF3FmIXaiWw3VEDBTziD1K/3I5mVv2jdxGwIDAQAB
    

После обновления, перед запуском

После обновления, перед запуском системы требуется выполнение следующих шагов.

  1. Необходимо выполнить целевой пулл проекта

    cr.yandex/crp8p3a3l1ri2431n3ce/release/postgresql
    cr.yandex/crp8p3a3l1ri2431n3ce/release/rabbitmq
    cr.yandex/crp8p3a3l1ri2431n3ce/release/redis
    cr.yandex/crp8p3a3l1ri2431n3ce/release/nginx
    

    или скачать дополнительные актуальные образы на машину.

    docker-compose pull
    
  2. Удалить папку с данными data из rabbitmq.

    rm -rf $HOME_STINGRAY/service/rabbitmq/data
    
К началу