sonar 容器化部署

Posted mscm

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sonar 容器化部署相关的知识,希望对你有一定的参考价值。

一、sonar安装步骤
  (部署硬件要求2G以上内存)

1. 准备镜像
   docker pull postgres
   docker pull sonarqube
2. 编写脚本
1.start-postgresql.sh
  #!/bin/bash
  docker stop postgresql
  docker rm postgresql
  docker run -d --name postgresql -p 5432:5432
  -e POSTGRES_USER=sonar
  -e POSTGRES_PASSWORD=sonar
  -e POSTGRE_DB=sonar
  -v /opt/postgresql/data:/var/lib/postgresql/data
  postgres:10.4

2.start-sonar.sh
  #!/bin/bash
  docker stop sonarqube
  docker rm sonarqube
  docker run --name sonarqube --link postgresql -e SONARQUBE_JDBC_URL=jdbc:postgresql://postgresql:5432/sonar -p 9000:9000 -d -v /root/xej-sonar/data/sonarqube/data:/opt/
  sonarqube/data -v /opt/sonarqube/extensions:/opt/sonarqube/extensions sonarqube:community

3.在宿主机上,创建数据存储目录(可以替换成自己的目录)
   mkdir -p /opt/postgresql/data
   mkdir -p /opt/sonarqube/data
   mkdir -p /opt/sonarqube/extensions

4.启动postgresql
    ./start-postgresql.sh

5.启动sonar(默认会启动elasticsearch,elasticsearch不允许root启动,所以这里要添加一个普通用户)
1.创建用户
   useradd sonar
   passwd sonar
2.用户授权
   chown -R sonar:sonar /var/run/docker.sock
3.启动 sonar
    su sonar
    ./start-sonar.sh
6.访问http://ip:9000/访问sonar

 技术图片

 安装Sonar-Scanner插件

下载linux版本,链接为:
https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.2.0.1873-linux.zip 

解压
    unzip sonar-scanner-cli-4.2.0.1873-linux.zip

配置环境变量,修改文件 /etc/profile

  export SONAR_SCANNER_HOME=/opt/software/sonar-scanner-4.2.0.1873-linux
  export PATH=$SONAR_SCANNER_HOME/bin:$PATH

验证安装:

# sonar-scanner -v
INFO: Scanner configuration file: /data/sonar-scanner-4.2.0.1873-linux/conf/sonar-scanner.properties
INFO: Project root configuration file: NONE
INFO: SonarQube Scanner 4.2.0.1873
INFO: Java 11.0.3 AdoptOpenJDK (64-bit)
INFO: Linux 2.6.32-696.10.1.el6.x86_64 amd64

二、项目分析

  1.在项目目录下,新建 sonar-project.properties 文件,添加以下内容

#key,唯一标识,直接用项目名即可
sonar.projectKey=项目名
sonar.projectName=项目名
sonar.projectVersion=1.0
#要扫描的代码路径,sonar-project.properties文件的相对路径。【配成.或src】
sonar.sources=.
sonar.sourceEncoding=UTF-8
sonar.language=java
sonar.java.binaries=项目路径/target/classes

2.执行分析
   sonar-scanner

3.查看报告结果 http://IP:9000/

  技术图片

 

 

    

   

以上是关于sonar 容器化部署的主要内容,如果未能解决你的问题,请参考以下文章

容器化部署是什么意思?有什么优势?

容器化部署是什么意思?有什么优势?

容器化部署和传统部署的四个区别详细讲解-行云管家

容器化部署和传统部署的四个区别详细讲解-行云管家

Jenkins中部署Sonar代码检查

azure App 服务部署为代码还是容器?