Установка SonarQube на свой сервер: термины и чек-лист

Подробности, цифры, термины и чек-лист по теме «Установка SonarQube на свой сервер». Страница справочника целиком: Установка SonarQube на сервер.

Коротко о теме

Установка SonarQube Community Build на VPS в Docker: образ sonarqube:community, vm.max_map_count 524288, база PostgreSQL, сканер и первый вход под admin.

Подробности по разделам

Что проверяет SonarQube и в какой сборке он бесплатен

Платные редакции добавляют часть функций, и список различий SonarSource ведёт на своём сайте, поэтому сверяйте его перед выбором, а не по старым статьям. Не путайте SonarQube с Nexus и Harbor: он не хранит артефакты, он оценивает код. Хранилища артефактов разобраны на страницах Nexus Repository и Harbor.

Какие параметры ядра нужны SonarQube перед запуском

Без неё после перезагрузки сервера SonarQube снова перестанет подниматься. Лимиты ulimit в Docker обычно выставляют в compose-файле, как показано ниже. Три ответа, и калькулятор подберёт готовую конфигурацию

Установка SonarQube через Docker Compose с PostgreSQL

Посмотрите docker compose logs sonarqube, затем освободите память или возьмите конфигурацию побольше. Ошибка про bootstrap checks в журнале, наоборот, говорит о параметрах ядра из таблицы выше.

Как подключить SonarQube к GitLab CI и Jenkins

Токен храните в секретных переменных CI, не в репозитории. В GitLab Runner сканер запускают отдельным заданием из образа sonarsource/sonar-scanner-cli, в Jenkins есть плагин SonarQube Scanner, который подставляет адрес и токен сам. Адрес в настройках сборок должен быть тем, по которому сервер видно с раннера.

Копии и обновление SonarQube без потери истории

Перед обновлением прочитайте инструкцию по переходу на выбранную версию на сайте SonarSource: при новой версии SonarQube просит открыть страницу миграции базы, которая выполняется один раз, и откатиться назад уже нельзя. Сначала дамп базы, потом смена тега.

Ключевые цифры

Термины на странице

PostgreSQL
PostgreSQL это база данных для приложений с большими объёмами и сложными запросами.
Linux
Linux это семейство операционных систем для серверов: Ubuntu, Debian, AlmaLinux и другие.
Nginx
Nginx это веб-сервер и обратный прокси. Его часто ставят перед приложением, чтобы раздавать статику и держать HTTPS.
Docker
Docker запускает программы в контейнерах: всё нужное для работы упаковано в образ.
vCPU
vCPU это виртуальное ядро процессора. Его мощность зависит от модели процессора и от того, делится ли ядро с соседями.
Root-доступ
Root-доступ это права администратора на сервере: можно ставить любые программы и менять любые настройки.

Что проверить

  1. Выберите конфигурацию по памяти и диску под задачу, процессор обычно вторичен.
  2. Проверьте тип виртуализации: KVM даёт свою систему и гарантированные ресурсы.
  3. Уточните, входит ли IPv4 и сколько стоит трафик сверх пакета.
  4. Храните данные контейнеров в томах.
  5. Закрепляйте версии образов, а не latest.
  6. Ограничьте ресурсы контейнеров, чтобы один не съел весь сервер.

Связанные страницы