系统环境:Centos7.8
SonarQube版本:Community EditionVersion 8.5.1 (build 38104)
直接开干,跑起来再说!!
查看SonarQube
官方镜像
开始操作啦!!!!!!!!!
# 拉取镜像
docker pull sonarqube
# 或者指定版本(8.5.1是当前最新的)
# docker pull sonarqube:8.5.1-community
# 创建映射目录
mkdir -p /opt/sonarqube/data
mkdir -p /opt/sonarqube/extensions
mkdir -p /opt/sonarqube/logs
mkdir -p /opt/sonarqube/temp
# 修改宿主机最大内存映射区域数
# 临时修改,系统重启后失效
sysctl -w vm.max_map_count=262144
# 永久修改,编辑 /etc/sysctl.conf 文件,添加 vm.max_map_count=262144
vi /etc/sysctl.conf
# 初始化数据库,此处使用Postgres数据库,这里就不讲postgres数据库的安装了
DROP DATABASE IF EXISTS sonarqube;
CREATE DATABASE sonarqube WITH ENCODING = 'UTF8';
CREATE USER sonarqube WITH PASSWORD 'sonarqube';
GRANT ALL PRIVILEGES ON DATABASE sonarqube TO sonarqube;
GRANT ALL PRIVILEGES ON all tables in schema public TO sonarqube;
# 运行容器
docker run -d --name sonarqube -p 9000:9000 \
-v /opt/sonarqube/data:/opt/sonarqube/data \
-v /opt/sonarqube/extensions:/opt/sonarqube/extensions \
-v /opt/sonarqube/logs:/opt/sonarqube/logs \
-v /opt/sonarqube/temp:/opt/sonarqube/temp \
-e SONAR_JDBC_URL="jdbc:postgresql://127.0.0.1:5432/sonarqube?useUnicode=true&characterEncoding=utf-8" \
-e SONAR_JDBC_USERNAME="sonarqube" \
-e SONAR_JDBC_PASSWORD="sonarqube" \
-e SONAR_ES_BOOTSTRAP_CHECKS_DISABLE=true \
sonarqube:latest
一顿操作猛如虎,没有错误信息,启动成功!(注:实际中一大堆问题,后面说…)
访问http://${ip}:9000
默认账户密码admin/admin
操作界面全英文,如果需要中文,可以通过安装中文插件的方式汉化。
见如下图操作:
Administration -> Marketplace -> Plugins 中输入 Chinese -> 选择第一个Install
OK,基本上是完成了SonarQube的安装了!
下面说说遇到的问题:(列举了几个重要的)
-
新版的SonarQube(7.9+)只支持以下数据库:
Microsoft SQL Server
、Oracle
、PostgreSQL
、H2 (默认的嵌入式数据库)
注意不再支持MySQL,使用MySQL数据源启动会报错:
Exception in thread "main" org.sonar.process.MessageException: Unsupported JDBC driver provider: mysql
-
SonarQube内置了ElasticSearch,需要调整默认的vm.max_map_count信息,不然启动会报错:
ERROR: [1] bootstrap checks failed [1]: max virtual memory areas vm.max_map_count
在宿主机中执行以下命令:sysctl -w vm.max_map_count=262144
-
7.9版本后就不支持MYSQL了
默认是H2
默认H2启动的,界面会提示以下信息
-
新版SonarQube没有
/opt/sonarqube/conf
目录了,不需要再做数据卷映射,否则启动报错。