はじめに
SonarQubeをDockerContainerにしてみた話 の SonarQube
のその後の話です。
経緯
ある開発のお手伝いをしたのですがオンプレミス環境でかなり古いバージョンの SonarQube
を利用していて微妙な状態でした。
個人的に2年近く前にSonarQubeのDockerContainer化をしていたので、最新のバージョンにして提供しましたのでその際の備忘です。
実施したこと
- SonarQube Ver 7.4 を SonarQube Ver 8.4.2に変更
- SonarQube用のDBを MySQL から PostgreSQL Ver 13.0 に変更(End of Life of MySQL Support )
- docker-composeファイルを Ver 3 に変更
SonarQube Ver 7.4 を SonarQube Ver 8.4.2に変更
利用するContaner Imageを sonarqube:8.4.2-community
に変更するだけの簡単な作業です。
# SonarQube Server
sonarqube-server:
container_name: sonarqube-server
image: sonarqube:8.4.2-community
SonarQube用のDBを MySQL から PostgreSQL Ver 13.0 に変更
End of Life of MySQL Support の通り、最新の SonarQube
ではMySQLがサポートされないためPostgreSQLに乗り換えます。
利用するContaner Imageを postgres:13.0-alpine
に変更し、公式ガイドを参考に volumes
と environment
を変更します。
合わせてcontainer_nameなどもわかりやすいものに変更します。
# SonarQube Server用Database
postgres-sonarqube:
container_name: postgres-sonarqube
image: postgres:13.0-alpine
volumes:
- "./data/postgresql/init:/docker-entrypoint-initdb.d"
- "./data/postgresql/db:/var/lib/postgresql"
ports:
- "5432:5432"
networks:
- sonarqube-server-network
environment:
- POSTGRES_USER=sonar
- POSTGRES_PASSWORD=sonar
- POSTGRES_DB=sonar
また、 SonarQube
ContanerのDB接続情報(environment
)も変更します。
# SonarQube Server
sonarqube-server:
container_name: sonarqube-server
image: sonarqube:8.4.2-community
command: -Dsonar.web.context=/sonarqube
links:
- postgres-sonarqube:postgres
volumes:
- ./data/sonarqube/extensions/plugin:/opt/sonarqube/extensions/plugins
ports:
- "9000:9000"
- "9092:9092"
networks:
- sonarqube-server-network
environment:
- SONARQUBE_JDBC_USERNAME=sonar
- SONARQUBE_JDBC_PASSWORD=sonar
- "SONARQUBE_JDBC_URL=jdbc:postgresql://postgres-sonarqube:5432/sonar"
docker-composeファイルを Ver 3 に変更
今はVer3が主流なので、docker-composeファイルのversionsも 3
に変更します。
version: '3'
services:
動作確認
ここまで対応したら、以下のコマンドで動作確認をして作業終了です。
docker-compose up --force-recreate sonarqube-server
感想
データ移行は考慮しないバージョンアップ作業が主なので簡単でした。
改めてDocker Container化しておくとこの辺は簡単で良いと感じました。
これでしばらくは頑張れそうですね。
本記事の対応は以下のgithubリポジトリに公開していますので興味ありましたら参考にしてください。
https://github.com/awakuwaku/sonar-qube-docker