目次
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
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のログインページが表示されます。