Файл docker-compose для запуска сервера SonarQube

Обновлено и опубликовано Опубликовано:

Используемые термины: DockerSonarQube.

В инструкции мы рассмотрим небольшой сценарий по запуску сервера SonarQube в качестве контейнера с помощью docker-compose.

Предварительная настройка системы

Для корректной работы SonarQube необходимо отредактировать значения двух параметров ядра операционной системы:

  • vm.max_map_count — максимальное количество областей памяти, которые может использовать процесс. Без этого Elasticsearch упадет сразу после запуска.
  • fs.file-max — максимальное количество одновременно открытых файлов во всей системе.

Открываем файл:

vi /etc/sysctl.conf

Добавляем записи:

vm.max_map_count=524288
fs.file-max=131072

Применяем:

sysctl -p

Файлы docker-compose и env

Создаем каталог для файлов sonarqube и переходим в него:

mkdir /opt/sonarqube && cd /opt/sonarqube

Создаем файл docker compose:

vi docker-compose.yml

services:

  sonarqube:
    image: sonarqube:${SQ_VER}
    container_name: sonarqube
    hostname: sonarqube
    restart: unless-stopped
    ports:
      - "9000:9000"
    environment:
      TZ: ${TZONE}
      SONAR_JDBC_USERNAME: ${DB_USER}
      SONAR_JDBC_PASSWORD: ${DB_PASS}
      SONAR_JDBC_URL: jdbc:postgresql://sonardb:5432/${DB_NAME}
    volumes:
      - ./sonarqube/data:/opt/sonarqube/data
      - ./sonarqube/extensions:/opt/sonarqube/extensions
      - ./sonarqube/logs:/opt/sonarqube/logs
    depends_on:
      sonardb:
        condition: service_healthy
    ulimits:
      nofile:
        soft: 131072
        hard: 131072
    healthcheck:
      test: ["CMD-SHELL", "wget -qO- http://localhost:9000/api/system/status | grep -q '\"status\":\"UP\"'"]
      interval: 10s
      timeout: 5s
      retries: 10
      start_period: 30s

  sonardb:
    image: postgres:${DB_PGVER}
    container_name: sonardb
    hostname: sonardb
    restart: unless-stopped
    environment:
      TZ: ${TZONE}
      POSTGRES_USER: ${DB_USER}
      POSTGRES_PASSWORD: ${DB_PASS}
      POSTGRES_DB: ${DB_NAME}
    volumes:
      - ./postgresql/data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U ${DB_USER} -d ${DB_NAME}"]
      interval: 5s
      timeout: 5s
      retries: 5

И также создадим конфигурационный файл:

vi .env

TZONE=Europe/Moscow

SQ_VER=26.6.0.123539-community

DB_PGVER=16-alpine
DB_USER=sonar
DB_PASS=12345678
DB_NAME=sonar

* замените значения на свои:

  • TZONE — временная зона, с которой будет отображаться время сервиса.
  • SQ_VER — версия SonarQube. Актуальную можно посмотреть на DockerHub.
  • DB_PGVER — версия PostgreSQL.
  • DB_USER — имя пользователя, который будет создан при первом запуске PostgreSQL.
  • DB_PASS — пароль, который будет назначен пользователю при первом запуске PostgreSQL.
  • DB_NAME — имя базы данных. Как правило, совпадает с именем пользователя.

Сценарий готов к работе.

Запуск

Перед запуском контейнеров создадим следующие каталоги:

mkdir -p ./sonarqube/{data,extensions,logs}

И задаем владельца с идентификатором 1000 (от него запускается процесс sonarqube):

chown -R 1000:1000 ./sonarqube

Теперь можно запустить контейнеры:

docker-compose up -d

Проверить статус можно командой:

docker-compose ps

Проверить, что сервис отвечает можно командой:

curl -s http://localhost:9000/api/system/status

Теперь можно открыть браузер и ввести адрес http://<IP-адрес хоста docker>:9000/ — вводим логин с паролем adminadmin. И меняем пароль на новый.

Можно пользоваться сервером.

# DevOps # Контейнеризация
Дмитрий Моск — частный мастер
Был ли вам полезен этот скрипт?

Да            Нет

Дмитрий Моск
— IT-специалист.
Настройка серверов, услуги DevOps.

Заказать настройку контейнеризации

Нужна бесплатная консультация?

Скрипты

Запуск SonarQube Server в контейнере с помощью docker-compose

Пример файла docker-compose для запуска Garage S3

Развертывание N8N в среде контейнеров с помощью docker-compose

Сценарий в docker-compose для запуска Rocket.Chat

Запуск Nextcloud с помощью docker-compose со всем необходимым

Пример скрипта на Python для копирования пакетов NPM с одного репозитория Nexus в другой

Развертывание caddy прокси в docker с помощью docker-compose

Другие скрипты

Все статьи

Нужен скрипт? Опишите его назначение:





Реклама