Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

Версия 1 Следующий »

Если вы используете Docker-сборку, для обновления обязательно выполните шаги данной инструкции. Без этого работоспособность продукта не гарантируется.

Обновление Polymatica Dashboards Docker Compose

В связи с переходом на Nginx был переработан конфигурационный файл docker-compose.yml.
Для обновления необходимо скачать актуальные файлы, перенести в новый Compose локальные правки из текущей конфигурации, при необходимости настроить внешние TLS-сертификаты и затем перезапустить сервисы.

  1. Скачать актуальные файлы обновления.
mkdir -p /tmp/platform-update/nginx
cd /tmp/platform-update || exit 1

wget https://repo.polymatica.ru/platform/docker/configs/docker-compose.yml
wget https://repo.polymatica.ru/platform/docker/configs/psql_init.sh

cd nginx || exit 1
wget https://repo.polymatica.ru/platform/docker/configs/nginx/gen-certs.sh
wget https://repo.polymatica.ru/platform/docker/configs/nginx/logs.passwd
wget https://repo.polymatica.ru/platform/docker/configs/nginx/nginx.conf

chmod +x gen-certs.sh
chmod +x ../psql_init.sh

2. Создать резервную копию текущих файлов.

Перед заменой файлов рекомендуется сохранить резервные копии текущей конфигурации:

mkdir -p /srv/platform/backup

cp -a /srv/platform/docker-compose.yml /srv/platform/backup/docker-compose.yml.$(date +%F-%H%M%S)
[ -f /srv/platform/psql_init.sh ] && cp -a /srv/platform/psql_init.sh /srv/platform/backup/psql_init.sh.$(date +%F-%H%M%S)
[ -d /srv/platform/nginx ] && cp -a /srv/platform/nginx /srv/platform/backup/nginx.$(date +%F-%H%M%S)

3. Перенести локальные правки из текущего Compose в новый.

Сравните текущий и новый файлы:

diff -u /srv/platform/docker-compose.yml /tmp/platform-update/docker-compose.yml
nano /tmp/platform-update/docker-compose.yml

При переносе проверьте все локальные изменения, которые были внесены в текущую установку, например:

    • переменные окружения;
    • volumes и bind mounts;
    • порты;
    • labels;
    • networks;
    • ресурсные ограничения;
    • кастомные пути к данным и сертификатам.

4. Настройка внешних TLS-сертификатов

Если используются внешние сертификаты, положите их на хост в каталог:

/srv/polymatica/data/nginx/ssl

По умолчанию этот каталог монтируется в контейнер Nginx как:

- /srv/polymatica/data/nginx/ssl:/etc/nginx/ssl

В секции "Nginx" файла docker-compose.yml это выглядит так:

nginx:
  image: nginx:1.29.4
  logging: *default-logging
  ports:
    - "80:80"
    - "443:443"
  depends_on:
    - gateway
    - frontend
  volumes:
    - ./nginx/nginx.conf:/etc/nginx/conf.d/default.conf:ro
    - ./nginx/logs.passwd:/etc/nginx/logs.passwd:ro
    - ./nginx/gen-certs.sh:/docker-entrypoint.d/gen-certs.sh:ro
    - /srv/polymatica/data/nginx/ssl:/etc/nginx/ssl
    # - ./data/nginx/ssl:/etc/letsencrypt/live/:ro
  networks:
    - polymatica
  labels:
    - "polymatica=platform"

Проверьте, что конфигурация nginx.conf ссылается на корректные пути сертификатов внутри контейнера.
По умолчанию используются:

ssl_certificate /etc/nginx/ssl/cert.pem;
ssl_certificate_key /etc/nginx/ssl/key.pem;

Если ваши файлы называются иначе, есть два варианта:

    • переименовать сертификаты на хосте в "cert.pem" и "key.pem";
    • изменить пути в nginx.conf на фактические имена файлов.

5. Скопировать обновленные файлы в рабочую директорию.

После внесения всех необходимых правок скопируйте файлы в "/srv/platform/":

cd /tmp/platform-update || exit 1
cp -a docker-compose.yml /srv/platform/
cp -a psql_init.sh /srv/platform/
cp -a nginx /srv/platform/

6. Проверить корректность Compose-конфигурации.

Перед запуском выполните проверку:

cd /srv/platform || exit 1
docker compose config -q

Если команда завершилась без ошибок, конфигурация корректна.

7. Запустить обновление.

cd /srv/platform || exit 1
docker compose up -d --remove-orphans

8. После обновления рекомендуется убедиться, что:

    • контейнеры запустились без ошибок;
    • Nginx слушает 80 и 443 порты;
    • TLS-сертификаты подхватились корректно;
    • frontend и gateway доступны через Nginx;
    • в логах контейнеров нет ошибок инициализации.
  • Нет меток