概要
静的解析ツールのSonarQubeを動かしたいけど、全然今時の記事がないので備忘録がてらに。
docker-compose.ymlの設定
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」でログインできる。
プロジェクトを作る
localhost:9000/projects/create
にアクセスしてプロジェクトを作成する。
ログイントークンを生成し、以下の画面まで到達する。
ローカルなのでログイントークンは公開していますが、サーバー上で動かす場合は、ログイントークンは公開しないでください
ダウンロードリンクをクリックし、以下のsonar-scanner-cliのDockerでの操作方法を確認する。
https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/
にて
いざスキャン!
が、
$ 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