CentOs7中安装sonarQube服务系列------3.安装SonarQube服务器

3.安装SonarQube服务器
3.1镜像拉取

docker pull sonarqube:8.4.2-community    #下载速度较慢

3.2.创建容器实例

方式一:启动无需先配置好postgreSQL
docker run -id --name sonarqube \
    -p 9000:9000 \
    --restart=always \
    -v /data/sonarqube/sonarqube_extensions:/opt/sonarqube/extensions \
    -v /data/sonarqube/sonarqube_logs:/opt/sonarqube/logs \
    -v /data/sonarqube/sonarqube_data:/opt/sonarqube/data \
   sonarqube:8.4.2-community

方式二::必须先配置好postgreSQL,否则SonarQube启动时连接不到数据库会报错
docker run -id --name sonarqube \
    -p 9000:9000 \
    --restart=always \
    -e SONAR_JDBC_URL=jdbc:postgresql://192.168.10.48:54321/sonarqube? \
    -e SONAR_JDBC_USERNAME=postgres \
    -e SONAR_JDBC_PASSWORD=123456 \
    -v /data/sonarqube/sonarqube_extensions:/opt/sonarqube/extensions \
    -v /data/sonarqube/sonarqube_logs:/opt/sonarqube/logs \
    -v /data/sonarqube/sonarqube_data:/opt/sonarqube/data \
   sonarqube:8.4.2-community

#参数解释
-v 目录挂载:宿主机路径:Docker中路径
--name :容器的名称
--restart=always:随容器自启
-p 端口映射 :宿主机端口:容器端口
-di :-d 后台运行 -i 容器运行起来
sonarqube:8.4.2-community  指定容器的镜像名和所需版本:8.4.2-community
-e :Docker容器设置相关的环境变量

#扩展
查看Docker容器环境变量:
docker exec -it <CONTAINER-NAME> OR <CONTAINER-ID> env
或者
docker inspect <CONTAINER-NAME> OR <CONTAINER-ID>
修改Docker容器环境变量:
docker run --env <key>=<value> <IMAGE-ID>   

此时可以通过访问[虚拟机ip:9000],查看sonarqube是否成功启动。如图:

*3.3.为Sonarqube添加数据库配置(注:若使用方式二创建的SonarQube,请忽略此步骤)
*3.3.1登录容器
docker exec -it sonarqube /bin/bash

*3.3.2编辑sonar.properties配置文件
vi /opt/sonarqube/conf/sonar.properties

增加如下数据库的配置
(数据库所在的ip为192.168.10.48,端口为54321,数据库名称可自定义,此处数据库名为sonarqube)

sonar.jdbc.url=jdbc:postgresql://192.168.10.48:54321/sonarqube?
sonar.jdbc.username=postgres
sonar.jdbc.password=123456

*3.3.3保存修改并退出

ESC:wq!

3.4修改系统配置文件
因sonarqube的启动对系统参数具有对应的要求,故需要修改系统的默认值
官方参数要求:https://docs.sonarqube.org/latest/requirements/requirements/

设置方法如下:
方式一:以root权限临时设置(系统重启后无效)

sysctl -w vm.max_map_count=524288
sysctl -w fs.file-max=131072
ulimit -n 131072
ulimit -u 8192

# 参数解释
sysctl vm.max_map_count    //一个进程可以拥有的VMA(虚拟内存区域)的数量上限
sysctl fs.file-max        //同时打开的文件数目上限 
ulimit -n   //可以打开的文件描述符的上限
ulimit -u  //可以启动线程的数量上限

方式二:修改系统配置文件(永久设置) 推荐
(1)手动修改/etc/sysctl.conf 文件

vi /etc/sysctl.conf

#在文件末尾,添加如下两个变量(如果查询的值大于官方的要求值,可以选择性设置)
vm.max_map_count=524288
fs.file-max=131072

#让修改后的内核参数即刻生效
sysctl -p

(2)手动修改/etc/security/limits.conf文件

vim /etc/security/limits.conf
#在文件末尾,添加如下设置
* soft nofile 131072
* hard nofile 131072
* soft nproc 8192
* hard nproc 8192

#参数说明:
    * 代表针对所有用户
    noproc 是代表最大进程数
    nofile 是代表最大文件打开数 
#重启服务器,使limits.conf限制生效
reboot

备注:以上所设参数的值均为官方推荐值

按照上述设置后,可通过如下命令验证所设值是否生效

查看如下值:

sysctl vm.max_map_count
sysctl fs.file-max
ulimit -n
ulimit -u

修改上述值后,SonarQube容器随Docker重启后,会根据postgreSQL配置自动创建对应的表,如图所示

3.5安装插件
3.5.1直接在官网下载
admin登录---Adminstration--Marketplace---"Chinese Pack" ---install
下载安装完后,页面会提示重启sonarqube:点击"restart Server"即可使插件生效;

同理,安装其他的插件
eg:java,html,css,js.....
需要扫描对应的文件类型,就需要下载对应文件的插件(PluginsMarket中无法搜索java)
输入"java",搜索到的均为扩展分析报告,没有搜索到 SonarJava LANGUAGES

3.5.2直接使用本地下载好的插件(需要在创建容器实例的时候,进行目录挂载)推荐!!!
直接将已经存在的插件放到挂载的目录下
最直接的方式:直接在官网下载对应的安装包,其中就有Static code analysis for Java
官网下载链接:https://www.sonarqube.org/downloads/

下载后,直接解压,并将所需的plugins拖到宿主机挂载的目录下

使用命令,重启sonarqube

//重启sonarqube的Docker实例,让plugins生效
docker restart sonarqube

猜你喜欢

转载自blog.csdn.net/qq_39071599/article/details/110231883
今日推荐