Обзор конфигурации Docker Compose для развертывания BeeCR
Данный раздел документации посвящен особенностям конфигурационного файла для запуска BeeCR на собственном сервере с помощью Docker.
⚠️ Примечание: Если вы ищете пошаговые инструкции по развертыванию на собственных серверах с помощью Docker, пожалуйста, обратитесь к данному руководству.
📄 Требования
Для развертывания решения на сервере требуется:
- Сервер на основе Linux (желательно Ubuntu или Debian).
- Графический ускоритель NVidia (минимум 24 ГБ памяти, рекомендуется 40 ГБ).
- Драйвер NVidia.
Вы можете убедиться, что драйвер присутствует и работает, выполнив команду типаnvidia-smi
(команда должна перечислить доступные GPU). - Docker, а также Docker Compose.
- NVIDIA Container Toolkit
🚀 Краткая инструкция
- Скачайте файл on-premises/compose.yml в любое место на ваш выбор.
- Поместите ваш файл лицензии (предоставляется нашей командой) в ту же папку, где находится
compose.yml
. - Запустите следующую команду в каталоге с
compose.yml
, чтобы запустить контейнеры AI и API в режиме демона:
🛠 Расширенная настройка
Рекомендуется изучить документацию "Getting started" по Docker Compose, если вы не знакомы с этим инструментом.
Внешний порт API
По умолчанию предоставленная конфигурация Docker Compose устанавливает порт 8000
для API:
Замените 8000
на предпочтительный для вас порт.
Файл лицензии
В предоставленной конфигурации Docker Compose предполагается, что файл лицензии размещается в той же папке, где находится и сам compose.yml
:
Если вы хотите сохранить его в другом месте, просто замените ./beecr.lic
на соответствующий путь в вашей файловой системе или в Docker-томе.
Актуальные разделы документации к Docker: Volumes, Bind Mounts.
Адрес GitLab
По умолчанию предоставленная конфигурация Docker Compose устанавливает адрес сервера GitLab как https://gitlab.com
с помощью переменной окружения GITLAB_HOST
:
Если вы используете экземпляр GitLab, развернутый в вашей собственной инфраструктуре, то рекомендуется переопределить, задав актуальный адрес GitLab. Однако это не всегда обязательно, так опция применяется только в том случае, если актуальный адрес GitLab не был передан в параметрах HTTP-запроса к API серверу. Если вы собираетесь использовать предоставленные компоненты/шаблоны CI/CD, то нет необходимости переопределять GITLAB_HOST
, потому что компоненты/шаблоны CI/CD всегда передают адрес GitLab в параметрах запроса.
Токен доступа к GitLab
В большинстве случаев API сервер BeeCR будет получать токен доступа GitLab через параметры запроса HTTP в каждом запросе на проверку.
Однако в некоторых случаях вы можете захотеть установить значение токена по умолчанию на стороне сервера.
Для этого выпустите токен доступа к GitLab проекта или группы и установите переменную среды GITLAB_TOKEN
:
Если вы собираетесь использовать предоставленные компоненты/шаблоны CI/CD, то нет необходимости переопределять GITLAB_TOKEN
, потому что компоненты/шаблоны CI/CD всегда передают токен доступа к GitLab в заголовках HTTP-запроса.
Ollama
Опции, описанные в данном разделе, актуальны только при использовании моделей через Ollama API.
Если вы планируете использовать модели через OpenAI-совместимый API (например, модель gpt-4o
), эти настройки не будут иметь никакого эффекта.
Предоставленная конфигурация Docker Compose предполагает, что доступ к ИИ модели выполняется через ИИ сервер с Ollama-совместимым API, который запущен на смежном Docker-контейнером.
Обновите переменную среды OLLAMA_HOST
, если вы хотите развернуть ИИ сервер отдельно:
По умолчанию предоставленный контейнер с Ollama рассчитан на сервер с 24 ГБ видеопамяти (VRAM). Если ваше оборудование более производительное и оснащено одной или несколькими видеокартами с суммарным объемом памяти более 24 ГБ (например, 48 ГБ или 80 ГБ), рекомендуется указать API серверу доступный объем видеопамяти. Это позволит BeeCR загружать больше информации в контекст ИИ, что приведет к более точным комментариям. Если на вашем сервере несколько видеокарт, укажите сумму их памяти.
ИИ-сервер на базе Ollama может быть настроен для обработки одного или нескольких запросов одновременно. По умолчанию предоставленный контейнер с ИИ настроен на 2 параллельных потока обработки. В зависимости от вашего оборудования и приоритетов (скорость обработки или полнота комментариев) вы можете увеличить количество параллельных потоков. Однако имейте в виду, что большее количество потоков означает большую производительность, но и больший расход видеопамяти (VRAM). Держите эту настройку согласованной между ИИ и API серверами.
OpenAI
Если вы собираетесь использовать модели ИИ через OpenAI-совместимый API, то, возможно, вам может потребоваться задать OPENAI_HOST
и/или OPENAI_API_KEY
:
OPENAI_HOST
: Адрес OpenAI-совместимого API сервера. Измените его, если вы используете непосредственно OpenAI,но через прокси-сервер или же используете какой-то сторонний API, совместимый с OpenAI.OPENAI_API_KEY
: Ваш ключ доступа к OpenAI API.
⚠️ Примечание: Если вы собираетесь использовать модели ИИ через OpenAI-совместимый API, то, вероятно, вам не нужно запускать Docker контейнер с ИИ локально. В такому случае просто удалите (или закомментируйте) всю секцию
beecr-ai
в конфигурации Docker Compose.
Модель
Предоставленная конфигурация Docker Compose задаёт ИИ модель через переменную среды MODEL
.
Эта опция применяется только в том случае, если входящие запросы HTTP API не указывают модель явно.
Если вы собираетесь использовать предоставленные компоненты/шаблоны CI/CD, то нет необходимости переопределять MODEL
, потому что компоненты/шаблоны CI/CD всегда передают модель через запросы.
⚠️ Примечание:
- Для OpenAI-совместимых API используйте имена моделей "как есть" например,
gpt-4o
.- Для Ollama-совместимых API используйте имена моделей с префиксом
ollama/
, например,ollama/codestral:22b
.