Ubuntu+Docker環境で「SonarQube」を構築してみる

Ubuntu+Docker環境で「SonarQube」を構築してみる

静的解析ツール「SonarQube」のLTS版(9.9.0)がリリースされたみたいなので、取り急ぎ構築メモ。
使い方とかはまた別途。

SonarQube構築

プロセスが使用可能なメモリマップ領域設定

システムパラメータのプロセスが使用可能なメモリマップ領域の最大数を変更します。
パラメータの名前は、「vm.max_map_count」です。

システムパラメータを変更するためには、「/etc.sysctl.d」ディレクトリ以下に.confファイルを作成します。
今回は「10-docker.conf」の名前でファイルを作成します。

vi /etc/sysctl.d/10-docker.conf

「10-docker.conf」ファイルに、以下設定を記述し、保存します。

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

サーバをシャットダウンしても設定が永続的に適用されているか確認するため、再起動します。

sudo reboot

再起動後、以下コマンドで設定が適用されているか確認します。

sudo sysctl -n vm.max_map_count
picture 1

docker-compose.yml

SonarQube用のディレクトリを作成し、いつもの通りdocker-compose作成。
DBにはpostgreSQLを使用します。

sudo mkdir ~/sonarqube
vi ~/sonarqube/docker-compose.yml
version: '3'
services:
  sonarqube:
    container_name: sonarqube
    image: sonarqube:9.9.0-community
    depends_on:
      - postgresql
    environment:
      - TZ=Asia/Tokyo
      - SONAR_WEB_CONTEXT=/sonarqube
      - SONAR_JDBC_URL=jdbc:postgresql://postgresql:5432/sonar
      - SONAR_JDBC_USERNAME=sonar
      - SONAR_JDBC_PASSWORD=sonar
    volumes:
      - sonarqube_conf:/opt/sonarqube/conf
      - sonarqube_extensions:/opt/sonarqube/extensions
      - sonarqube_logs:/opt/sonarqube/logs
      - sonarqube_data:/opt/sonarqube/data
    ports:
      - "51003:9000"
    networks:
      - sonarnet
    ulimits:
      nofile:
        soft: 131072
        hard: 131072
    restart: always
    
  postgresql:
    container_name: postgresql
    image: postgres:15.1-alpine
    environment:
      - TZ=Asia/Tokyo
      - POSTGRES_USER=sonar
      - POSTGRES_PASSWORD=sonar
    volumes:
      - postgresql:/var/lib/postgresql
      - postgresql_data:/var/lib/postgresql/data
    networks:
      - sonarnet
    restart: always
    
networks:
  sonarnet:
    driver: bridge
    
volumes:
  sonarqube_conf:
  sonarqube_extensions:
  sonarqube_logs:
  sonarqube_data:
  postgresql:
  postgresql_data:

起動確認

docker-compose.ymlが用意できたら、docker composeコマンドで起動します。

cd ~/sonarqube
docker compose up -d

起動出来たら、ブラウザからSonarQubeにアクセスしてみます。
上記docker-compose.ymlを使用した場合、URLは「http://<ホスト名>:<ポート番号>/sonarqube」になります。
※起動直後はアクセスできない場合あり。10分くらい放置してもよいかも。

http://aru-server:51003/sonarqube

正常に起動できていれば、SonarQubeのログインページが表示されます。

picture 2

参考URL

sonarqube(dockerhub)
SonarQube Documentation