VMmanager
Режим фокусировки

Модификация контейнеров через патчи

Вы можете изменить настройки контейнеров Docker на сервере с платформой с помощью патчей. Например, добавить в контейнер файлы, изменить переменные окружения и настройки сервисов.

Патч платформы — это YAML-файл в формате Docker Compose, который содержит новые настройки контейнера. Подробнее о Docker Compose см. в официальной документации.

Статья содержит инструкции по созданию и отключению патчей.

Создание патча

В примере рассматривается изменение переменных окружения для контейнера input. После применения патча значение переменной NGINX_KEEPALIVE_TIMEOUT будет равно 200, а NGINX_WORKER_CONNECTIONS — 1000.

Чтобы создать патч:

  1. Подключитесь к серверу с платформой по SSH. Подробнее о подключении по SSH см. в статье Настройка рабочего места.
  2. Создайте файл патча patch.yaml:

    patch.yaml
    version: "3.5"
    services:
      input:
        environment:
          NGINX_KEEPALIVE_TIMEOUT: 200
          NGINX_WORKER_CONNECTIONS: 1000
  3. Примените патч: 

    vm add-patch -p=<patch_name> -f=</path/to/patch.yaml>

    Пояснения к команде:

    • <patch_name> — уникальное имя патча;
    • </path/to/patch.yaml> — путь к файлу с содержимым патча.

Платформа применит патч и выполнит перезапуск необходимых контейнеров. Если патч применён успешно, то в раздел Patches файла /opt/ispsystem/vm/config.json добавится содержимое патча в кодировке base64:

Пример записи
{
  ...
  "Patches": {
    "patch_name": {
      "base64_compose": "dmVyc2lvbjogIjMuNSIKc2VydmljZXM6CiAgaW5wdXQ6CiAgICBlbnZpcm9ubWVudDoKICAgICAgTkdJTlhfS0VFUEFMSVZFX1RJTUVPVVQ6IDIwMAogICAgICBOR0lOWF9XT1JLRVJfQ09OTkVDVElPTlM6IDEwMDA="
    }
    },
  ...
}

Чтобы убедиться, что переменные окружения изменены, изучите вывод команд: 

docker exec input env | grep NGINX_KEEPALIVE_TIMEOUT
docker exec input env | grep NGINX_WORKER_CONNECTIONS

Отключение патча

Чтобы отключить патч:

  1. Подключитесь к серверу с платформой по SSH. Подробнее о подключении по SSH см. в статье Настройка рабочего места.
  2. Отключите патч: 

    vm remove-patch -p=<patch_name>

    Пояснения к команде:

    • <patch_name> — имя патча.

Примеры настраиваемых переменных окружения

КонтейнерПеременнаяЗначение
inputNGINX_WORKER_CONNECTIONSмаксимальное количество одновременных соединений, которые может обрабатывать каждый рабочий процесс Nginx
NGINX_KEEPALIVE_TIMEOUTвремя ожидания соединения keep-alive между Nginx и клиентом, сек
statisticCOLLECTOR_INTERVAL_MINинтервал сбора статистики, сек
COLLECTOR_METRIC_TIMEOUT_SECвремя ожидания ответа при сборе статистики, сек
COLLECTOR_WORKER_LIMITмаксимальное количество одновременных соединений при сборе статистики
Может быть полезно