😺

今更だけどSonarQubeをDockerで動かす

2021/07/24に公開

概要

静的解析ツールのSonarQubeを動かしたいけど、全然今時の記事がないので備忘録がてらに。

docker-compose.ymlの設定

version: '3'
services:

  #PHP Service
  app:
  .
  .
  .

  sonarqube:
    image: sonarqube:9.0-community
    depends_on:
      - pgsql
    ports:
      - "9000:9000"
    networks:
      - app-network
    environment:
      SONAR_JDBC_URL: jdbc:postgresql://pgsql: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

  pgsql:
    image: postgres:10
    networks:
      - app-network
    environment:
      POSTGRES_USER: sonar
      POSTGRES_PASSWORD: sonar
    volumes:
      - postgresql:/var/lib/postgresql
      - postgresql_data:/var/lib/postgresql/data

networks:
  app-network:
    driver: bridge

volumes:
  sonarqube_data:
    driver: local
  sonarqube_extensions:
    driver: local
  sonarqube_logs:
    driver: local
  sonarqube_temp:
    driver: local
  postgresql:
    driver: local
  postgresql_data:
    driver: local
$ docker-compose up -d

localhost:9000
でアイパス共に「admin」でログインできる。

スクリーンショット 2021-07-24 14.44.33.png

プロジェクトを作る

localhost:9000/projects/create
にアクセスしてプロジェクトを作成する。

スクリーンショット 2021-07-24 14.58.08.png

ログイントークンを生成し、以下の画面まで到達する。
ローカルなのでログイントークンは公開していますが、サーバー上で動かす場合は、ログイントークンは公開しないでください

スクリーンショット 2021-07-24 14.59.43.png

ダウンロードリンクをクリックし、以下のsonar-scanner-cliのDockerでの操作方法を確認する。

https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/
にてスクリーンショット 2021-07-24 15.02.28.png

いざスキャン!

が、

$ docker run \
    --rm \
    -e SONAR_HOST_URL="http://${SONARQUBE_URL}" \
    -e SONAR_LOGIN="myAuthenticationToken" \
    -v "${YOUR_REPO}:/usr/src" \
    sonarsource/sonar-scanner-cli

では動かない。
Httpディレクトリをスキャンしたい場合は、以下

$ docker run \
    --rm \
    --net host \
    -e SONAR_HOST_URL="http://localhost:9000" \
    -v ${PWD}/app/Http:/usr/src \
    sonarsource/sonar-scanner-cli \
    -Dsonar.projectKey=test \
    -Dsonar.sonar.projectName=test \
    -Dsonar.sonar.projectVersion=1.0 \
    -Dsonar.sonar.sourceEncoding=UTF-8 \
    -Dsonar.sonar.host.url=http://localhost:9000 \
    -Dsonar.login=a242986b52522d94b2b426b8f4c6de343c389487

結果

スクリーンショット 2021-07-24 15.08.07.png

参照

Error running sonar-scanner via docker image
sonarqube Doc

Discussion