使用 Docker Compose 在 SonarQube 中运行 (ナレッジ)
我想做的事情 (Wǒ zuò de
-
- sonarqubeをローカルで立ち上げて、かつデータは永続化したい
- sonarqubeにDB設定をしないとH2データベースを使ってしまうのでdocker-composeで合わせて設定する
给出的前提
本地环境中已经安装了Docker Compose。
步骤
从公式中获取样本文件并将其放置在任意文件夹中。
- 執筆時点では以下の記載
version: "3"
services:
sonarqube:
image: sonarqube:community
hostname: sonarqube
container_name: sonarqube
depends_on:
- db
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
ports:
- "9000:9000"
db:
image: postgres:13
hostname: postgresql
container_name: postgresql
environment:
POSTGRES_USER: sonar
POSTGRES_PASSWORD: sonar
POSTGRES_DB: sonar
volumes:
- postgresql:/var/lib/postgresql
- postgresql_data:/var/lib/postgresql/data
volumes:
sonarqube_data:
sonarqube_extensions:
sonarqube_logs:
postgresql:
postgresql_data:
使用docker-compose up -d –build进行启动
- サンプルファイルはデフォルトポートをそのまま使っているので、被ってないことを確認した上で立ち上げてください
只要可以站起来就好!
用中文原生表达一下sonaqube访问
http://localhost:9000 的中文翻译是什么
只要能无障碍访问就可以了!
然后,只需使用id/pw的admin/admin进行登录并进行设置。
故障排除
当你无法从这里起身时应采取的应对方法的备忘录
出现了不同版本的Postgresql错误,导致无法启动PostgreSQL。
以下是类似的错误(版本会因人而异)
The data directory was initialized by PostgreSQL version 10, which is not compatible with this version 13.10 docker
-
- 原因
ボリュームに保存されているバージョンと、今起動しようとしているバージョンが違うため
対処法
以下のコマンドで一度ボリューム含めて全削除する
docker-compose down –rmi all –volumes –remove-orphans
※注記)docker-composeの設定がすべて消えます
在Elasticsearch中出现错误。
You must address the points described in the following [1] lines before starting Elasticsearch.
-
- 対処法
こちらを参考https://stackoverflow.com/questions/57070176/sonarqube-7-9-1-community-troubleshooting
Elasticsearch は MMap FS ディレクトリを使用してインデックスを保存します。OSのデフォルトのmmapカウントの制限値が低すぎる可能性があり、メモリ不足の例外が発生する可能性があります。以下のコマンドを入力し、sudo権限で仮想メモリの値を増やしてください、
デフォルトだとvm.max_map_countの値が低く設定されているためとのこと
以下コマンドを実行して、再度立ち上げ
sudo sysctl -w vm.max_map_count=262144
如果要更改PostgreSQL的默认端口,可以这样做。
Docker-compose中定义的SonarQube会去查看5432端口。
如果您想在本地环境中避免冲突,只需更改以下★即可。
version: "3"
services:
sonarqube:
image: sonarqube:community
hostname: sonarqube
container_name: sonarqube
depends_on:
- db
environment:
# sonaqube is connecting to db on 5432port. ★この接続先はそのまま5432ポート
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
ports:
- "9000:9000"
db:
image: postgres:13
ports:
- "25432:5432" # avoid conflict local pgsql port ★
hostname: postgresql
container_name: postgresql
environment:
POSTGRES_USER: sonar
POSTGRES_PASSWORD: sonar
POSTGRES_DB: sonar
volumes:
- postgresql:/var/lib/postgresql
- postgresql_data:/var/lib/postgresql/data
volumes:
sonarqube_data:
sonarqube_extensions:
sonarqube_logs:
postgresql:
postgresql_data:
- 参考
最终
希望这篇文章对您有所帮助。