dockerを使ってOSSのコード品質管理ツール「SonarQube」を構築する

dockerを使ってOSSのコード品質管理ツール「SonarQube」を構築する

OSSのコード品質管理ツール「SonarQube」をdocker-composeから構築する手順を記述してます。

環境

  • OS debian 10
  • docker 19.03.8
  • docker compose 1.25.4

※debian 10にdockerのインストールはこちら

docker-compose.yml作成

こちらのdocker-compose.ymlをそのまま利用します。

wget https://raw.githubusercontent.com/SonarSource/docker-sonarqube/master/example-compose-files/sq-with-postgres/docker-compose.yml

内容は下記となります。

version: "2"

services:
  sonarqube:
    image: sonarqube:8.2-community
    depends_on:
      - db
    ports:
      - "9000:9000"
    networks:
      - sonarnet
    environment:
      SONAR_JDBC_URL: jdbc:postgresql://db:5432/sonar
      SONAR_JDBC_USERNAME: sonar
      SONAR_JDBC_PASSWORD: sonar
    volumes:
      - sonarqube_data:/opt/sonarqube/data
      - sonarqube_extensions:/opt/sonarqube/extensions
      - sonarqube_logs:/opt/sonarqube/logs
      - sonarqube_temp:/opt/sonarqube/temp
  db:
    image: postgres
    networks:
      - sonarnet
    environment:
      POSTGRES_USER: sonar
      POSTGRES_PASSWORD: sonar
    volumes:
      - postgresql:/var/lib/postgresql
      # This needs explicit mapping due to https://github.com/docker-library/postgres/blob/4e48e3228a30763913ece952c611e5e9b95c8759/Dockerfile.template#L52
      - postgresql_data:/var/lib/postgresql/data

networks:
  sonarnet:
    driver: bridge

volumes:
  sonarqube_data:
  sonarqube_extensions:
  sonarqube_logs:
  sonarqube_temp:
  postgresql:
  postgresql_data:

起動

firewallを設定されていれば、9000を開放しておきます。

sudo ufw allow 9000
sudo ufw reload

下記のコマンドでコンテナの作成と起動します。

docker-compose up -d

下記のエラーが発生しました。

ERROR: [1] bootstrap checks failed
[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

1プロセスで使用できるメモリマップの数の上限は
「sysctl vm.max_map_count」で設定されていて、これが少ないというエラーが出たので、下記のコマンドで「262144」に設定する

sudo sysctl -w vm.max_map_count=262144

再度実行します。

docker-compose up -d

今度は、問題なく起動できました。

SonarQubeログイン

ブラウザから http://プライベートIP:9000にアクセスすると下記の画面が表示されます。

画面左にある「Login」ボタンをクリックしてログインします。

ユーザー : admin
パスワード : admin
でログインできます。

ログインすると下記の画面が表示されます。これで構築は完了です。

※SonarQubeの日本語化はこちら
※ SonarQubeでphpのコードを解析はこちら