Если вы используете Docker-сборку, для обновления обязательно выполните шаги данной инструкции. Без этого работоспособность продукта не гарантируется. |
В связи с переходом на Nginx был переработан конфигурационный файл docker-compose.yml.
Для обновления необходимо скачать актуальные файлы, перенести в новый Compose локальные правки из текущей конфигурации, при необходимости настроить внешние TLS-сертификаты и затем перезапустить сервисы.
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 |
При переносе проверьте все локальные изменения, которые были внесены в текущую установку, например:
В сервисах frontend, gateway, rabbitmq не требуется переносить записи вида "traefik.*" в блоках labels, так как в данном обновлении произошел отказ от Traefik. |
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; |
Если ваши файлы называются иначе, есть два варианта:
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. После обновления рекомендуется убедиться, что: