sonarqube 9.3.0 docker搭建

docker鏡像:(https://hub.docker.com/)

  1. sonarqube:9.3.0-community
  2. postgres:14-alpine

安裝PostgreSQL

# 14.2有問題
docker pull postgres:14-alpine

運(yùn)行PostgreSql

# -v 掛在到宿主機(jī)/data/mnt/postgresql/data
#(映射到容器/var/lib/postgresql/data,即使容器掛了,不會丟失數(shù)據(jù))
docker run -d --name postgres \
 -e POSTGRES_PASSWORD=123456 \
 -e PGDATA=/var/lib/postgresql/data/pgdata \
 -p 5432:5432 \
 -v /data/mnt/postgresql/data:/var/lib/postgresql/data \
 postgres:14-alpine

進(jìn)入postgres容器

docker exec -ti postgres bash

創(chuàng)建用戶和數(shù)據(jù)庫

# 進(jìn)入容器后,切換到postgres用戶
su postgres
# 進(jìn)去psql命令行
psql
# 創(chuàng)建用戶sonar
create ROLE sonar superuser PASSWORD '123456' login;
# 創(chuàng)建數(shù)據(jù)庫sonar
create DATABASE sonar; 

至此搭建數(shù)據(jù)庫完成,拿到連接信息

SONARQUBE_JDBC_USERNAME=sonar
SONARQUBE_JDBC_PASSWORD=123456
# 10.2.3.4表示本機(jī)ip
SONARQUBE_JDBC_URL=jdbc:postgresql://10.2.3.4:5432/sonar

搭建sonarqube 9.3

# 拉取鏡象
docker pull sonarqube:9.3.0-community

運(yùn)行9.3.0-community鏡象

# --security-opt seccomp=/data/mnt/seccomp/profile.json 是為了解決"could not find java in ES_JAVA_HOME",如果沒有問題,可以去掉。
# -v 把sonarqube的插件數(shù)據(jù)等掛在到宿主機(jī)的位置,避免丟失
docker run -d --name sonarqube \
 --security-opt seccomp=/data/mnt/seccomp/profile.json \
 -e SONAR_ES_BOOTSTRAP_CHECKS_DISABLE=true \
 -e SONARQUBE_JDBC_USERNAME=sonar \
 -e 'SONARQUBE_JDBC_PASSWORD=123456' \
 -e 'SONARQUBE_JDBC_URL=jdbc:postgresql://10.2.3.4:5432/sonar' \
 -v /data/mnt/sonarqube/data:/opt/sonarqube/data \
 -v /data/mnt/sonarqube/extensions:/opt/sonarqube/extensions \
 -v /data/mnt/sonarqube/logs:/opt/sonarqube/logs \
 -p 9000:9000 sonarqube:9.3.0-community

如果沒有問題,訪問9000端口就可以啟動成功啦!

FAQ(整理了其中可能會遇到的問題)

  • 如果docker run xxx后,docker ps沒看到對應(yīng)的進(jìn)程
    就說明啟動失敗,查看docker容器啟動日志地址/var/lib/docker/containers/
  • /docker-entrypoint-initdb.d/': Operation not permitted
    14.2 版本對于低版本的docker有問題,需要升級到14-alpine版本,https://stackoverflow.com/questions/69706677/cannot-start-postgresql-docker-container-docker-entrypoint-initdb-d-oper
  • Elastic search max virtual memory areas vm.max_map_count [65530] is too low, increase to 262144
    elasticsearch 需要申請最大連續(xù)使用內(nèi)存,在宿主機(jī)上執(zhí)行后,重啟docker daemon
sysctl -w vm.max_map_count=262144
wget -P /data/mnt/seccomp/ https://raw.githubusercontent.com/moby/moby/master/profiles/seccomp/default.json
# docker啟動命令
docker run -d --name sonarqube \
 --security-opt seccomp=/data/mnt/seccomp/profile.json \
 -e SONAR_ES_BOOTSTRAP_CHECKS_DISABLE=true \
 ....
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容