Sonarqube安装及Jenkins集成

Sonarqube安装及Jenkins集成

docker-compose安装sonar

docker-compose.yml

=== vim docker-compose.yml ===

version: '3'
services: 
  postgres: 
    image: postgres    #基础镜像名字
    restart: always      #在容器退出时总是重启容器
    container_name: sonarqube_postgres    #自定义sonarqube容器名字
    ports:
      - 5433:5432   #-宿主机端口:容器暴露端口 ; 即将容器暴露端口映射到宿主机上某个端口
    volumes:
      - ./data/postgres/postgresql:/var/lib/postgresql    #将容器目录文件映射到宿主机上
      - ./data/postgres/data:/var/lib/postgresql/data
    environment:
      TZ: Asia/Shanghai    #指定容器时区
      POSTGRES_USER: sonar               #自定义postgres数据库登录用户
      POSTGRES_PASSWORD: sonar    #自定义postgres数据库登录密码
      POSTGRES_DB: sonar                    #自定义postgres数据库 “库”
    networks: 
      - sonar-network  #使用文件末定义的网络模式
  sonarqube:
    image: sonarqube    #8.5.1 
    restart: always 
    container_name: sonarqube_master
    ports:
      - 9001:9000
    volumes:
      - ./data/sonarqube/extensions:/opt/sonarqube/extensions
      - ./data/sonarqube/logs:/opt/sonarqube/logs
      - ./data/sonarqube/data:/opt/sonarqube/data
      - ./data/sonarqube/conf:/opt/sonarqube/conf
    environment:
      SONARQUBE_JDBC_USERNAME: sonar    #指定postgres数据库连接信息
      SONARQUBE_JDBC_PASSWORD: sonar
      SONARQUBE_JDBC_URL: jdbc:postgresql://postgres:5432/sonar
    depends_on:    #指定依赖某个服务 (本实例sonarqube依赖postgres)
      - postgres
    networks: 
      - sonar-network
networks:
  sonar-network:
    driver: bridge   #定义网络模式为bridge (缺省值bridge; 支持bridge,host,none,container四种类型)

配置宿主机并运行

1、修改宿主机内核参数
echo "vm.max_map_count = 655360"  >> /etc/sysctl.conf
sysctl -p

2、赋权给sonarqube/data目录下所有目录、文件
mkdir -p  ./data/sonarqube/data
chmod  -R 777 ./data/sonarqube/data

3、运行SonarQube(8+) + postgres
docker-compose up -d   #启动容器
docker ps #查看容器状态

安装中文包

方式1:搜索插件安装

  • • 管理员帐号登录

  • • 配置–应用市场–Chinese Pack

Sonarqube安装及Jenkins集成
image-20210323101240152
  • • 下载完成后重启

Sonarqube安装及Jenkins集成
image-20210323101329695

方式2:手动安装插件

  • • 去官网下载指定版本的jar包

Sonarqube安装及Jenkins集成
image-20210323094659757
  • • 拷贝至持久化目录

  • • 重启服务

持续集成配置

sonar后台生成连接密钥

  • • 我的帐号–安全–生成令牌

Sonarqube安装及Jenkins集成

Jenkins–凭据

  • • 添加凭据(Secret text类型)

Sonarqube安装及Jenkins集成
image-20210323095134257

Jenkins–sonar插件安装

  • • SonarQube Scanner for Jenkins

Sonarqube安装及Jenkins集成
image-20210323095217902

Jenkins–sonar连接属性配置

  • • 系统管理–系统配置–SonarQube servers

Sonarqube安装及Jenkins集成
image-20210323095352041

Jenkins–流水线实现

方式1:流水线包括所有参数

stage('Code Analysis') {
    steps {
        withSonarQubeEnv('sonarqube') {
            sh "mvn clean package -DskipTests=true -U -P ${MAVEN_RESOURCES} sonar:sonar -Dsonar.sorceEncoding=UTF-8 -Dsonar.sources=src/main -Dsonar.java.binaries=target/classes"
        }
    }
}

方式2:sonar-project.properties

  • • 将这些分析参数保存在项目根目录下的一个sonar-project.properties文件中

sonar.sourceEncoding=UTF-8
sonar.sources=src/main
sonar.tests=src/test/java
sonar.java.binaries=target/classes
  • • 再在流水线中传入这个配置文件

stage('Code Analysis') {
    steps {
        withSonarQubeEnv('sonarqube') {
            sh "mvn clean package sonar:sonar -Dproject.settings=sonar-project.properties"
        }
    }
}

MAVEN本地实现

mvn clean package sonar:sonar -Dsonar.sorceEncoding=UTF-8 -Dsonar.sources=src/main -Dsonar.java.binaries=target/classes 

Sonarqube安装及Jenkins集成


原文始发于微信公众号(背带裤的云原生):Sonarqube安装及Jenkins集成

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/218779.html

(0)
青莲明月的头像青莲明月

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!