Установка 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 просит открыть страницу миграции базы, которая выполняется один раз, и откатиться назад уже нельзя. Сначала дамп базы, потом смена тега.
Ключевые цифры
- Если порт 9000 закрыт, поставьте перед SonarQube Nginx или Caddy с HTTPS и обращайтесь по домену.
- Встроенный поисковый движок требует vm.max_map_count не ниже 524288, а в системе значение меньше.
Термины на странице
- PostgreSQL
- PostgreSQL это база данных для приложений с большими объёмами и сложными запросами.
- Linux
- Linux это семейство операционных систем для серверов: Ubuntu, Debian, AlmaLinux и другие.
- Nginx
- Nginx это веб-сервер и обратный прокси. Его часто ставят перед приложением, чтобы раздавать статику и держать HTTPS.
- Docker
- Docker запускает программы в контейнерах: всё нужное для работы упаковано в образ.
- vCPU
- vCPU это виртуальное ядро процессора. Его мощность зависит от модели процессора и от того, делится ли ядро с соседями.
- Root-доступ
- Root-доступ это права администратора на сервере: можно ставить любые программы и менять любые настройки.
Что проверить
- Выберите конфигурацию по памяти и диску под задачу, процессор обычно вторичен.
- Проверьте тип виртуализации: KVM даёт свою систему и гарантированные ресурсы.
- Уточните, входит ли IPv4 и сколько стоит трафик сверх пакета.
- Храните данные контейнеров в томах.
- Закрепляйте версии образов, а не latest.
- Ограничьте ресурсы контейнеров, чтобы один не съел весь сервер.