SonarQube+Jenkins代码审查集成CI/CD

SonarQube+Jenkins代码审查集成CI/CD

说明:docker-compose方式部署sonarqube7.9.2+postgresql12.3
 

环境准备:

# 临时生效 
sysctl -w vm.max_map_count=262144 
sysctl -w fs.file-max=65536 
ulimit -n 65536 
ulimit -u 4096
# 重启生效 
echo "sonar - nofile 65536 
sonar - nproc 4096" > /etc/security/limits.d/99-sonarqube.conf 
echo "vm.max_map_count=262144 
fs.file-max=65536" > /etc/sysctl.d/99-sonarqube.conf
 

部署:

1、# 创建容器映射路径 

mkdir -p /data/sonar/postgres/{postgresql,data} 
mkdir -p /data/sonar/sonarqube/{extensions,logs,data,conf} 
chmod -R 777 /data/sonar/* # 启动容器映射路径权限问题

2、#拉取docker 镜像,拉取镜像较慢,可以使用阿里云镜像站或者清华大学镜像站。 

docker pull postgres:12.3 
docker pull sonarqube:7.9.2-community

3、# 编辑docker-compose.yml文件

version: '3'
services:
  postgres:
    image: postgres:12.3
    restart: always
    container_name: postgres12.3
    ports:
      - 5432:5432
    volumes:
      - /data/sonar/postgres/postgresql:/var/lib/postgresql
      - /data/sonar/postgres/data:/var/lib/postgresql/data
      - /etc/localtime:/etc/localtime:ro
    environment:
      TZ: Asia/Shanghai
      POSTGRES_USER: sonar
      POSTGRES_PASSWORD: sonar
      POSTGRES_DB: sonar
 
  sonar:
    image: sonarqube:7.9.2-community
    container_name: sonar
    depends_on:
      - postgres
    volumes:
      - /data/sonar/sonarqube/extensions:/opt/sonarqube/extensions
      - /data/sonar/sonarqube/logs:/opt/sonarqube/logs
      - /data/sonar/sonarqube/data:/opt/sonarqube/data
      - /data/sonar/sonarqube/conf:/opt/sonarqube/conf
      # 设置与宿主机时间同步
      - /etc/localtime:/etc/localtime:ro
    ports:
      - 59000:9000
    command:
      # 内存设置
      - -Dsonar.ce.javaOpts=-Xmx2048m
      - -Dsonar.web.javaOpts=-Xmx2048m
      # 设置服务代理路径
      - -Dsonar.web.context=/
      # 此设置用于集成gitlab时,回调地址设置
      - -Dsonar.core.serverBaseURL=https://sonarqube.bdszh.vip
    environment:
      TZ: Asia/Shanghai
      SONARQUBE_JDBC_USERNAME: sonar
      SONARQUBE_JDBC_PASSWORD: sonar
      SONARQUBE_JDBC_URL: jdbc:postgresql://postgres:5432/sonar

4、# -d 服务后台运行

 docker-compose up -d

5、#nginx反向代理,DNS解析

...
server {
    listen 80;
    server_name xxx.xxx.com;
    location / {
        proxy_pass http://127.0.0.1:59000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
...

6、访问http://xxx.xxx.com

初始账号密码:admin/admin

7、中文插件

Jenkins集成

1、安装插件 SonarQube Scanner for Jenkins

 

2、系统配置——SonarQube servers——URL和token

 

 

 

3、全局工具配置—— SonarScanner for MSBuild——自动安装——选择版本

 

4、新建一个自由风格的任务——构建——SonarScanner for MSBuild - Begin Analysis

https://docs.sonarqube.org/7.9/analysis/scan/sonarscanner-for-msbuild/

构建完成后可登录查看

 

 

 
 
posted @ 2021-09-02 19:19  梦里花落知多少sl  阅读(310)  评论(0编辑  收藏  举报