zoukankan      html  css  js  c++  java
  • sonarqube + firebugs + gitlab-ci 生产部署

    1. 部署postgresql

    mkdir -p /data/sonar-postgres/data
    
    docker run -d 
        --name sonar-postgres 
        -p 5432:5432 
        -e POSTGRES_PASSWORD=sonarqube 
        -e PGDATA=/var/lib/postgresql/data/pgdata 
        -v /data/sonar-postgres/data:/var/lib/postgresql/data 
        -v /etc/localtime:/etc/localtime 
        postgres
        
        
    docker exec -it sonar-postgres /bin/bash
    psql --username postgres
    create user sonarqube with password 'sonarqube';
    create database sonar owner sonarqube;
    grant all privileges on database sonar to sonarqube;
    

    2. 部署sonarqube

    mkdir -p /data/sonarqube/{data,conf,extensions}
    chown -R 999.docker /data/sonarqube
    # 8.2 使用如下环境变量
    #    -e SONAR_JDBC_URL=jdbc:postgresql://192.168.13.25/sonar 
    #    -e SONAR_JDBC_USERNAME=postgres 
    #    -e SONAR_JDBC_PASSWORD=sonarqube 
        
    # 使用pgsql会报错 max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144],使用如下命名修改
    sysctl -w vm.max_map_count=262144
    
    sudo docker run -d --name sonarqube 
        --restart always 
        -e sonar.jdbc.username=sonarqube 
        -e sonar.jdbc.password=sonarqube 
        -e sonar.jdbc.url=jdbc:postgresql://192.168.13.25/sonar 
        -v /data/sonarqube/data:/opt/sonarqube/data 
        -v /data/sonarqube/extensions:/opt/sonarqube/extensions 
        -p 9000:9000 
        sonarqube:7.9-community
    

    3. 部署postgresql

    mkdir -p /data/sonar-postgres/data
    
    docker run -d 
        --name sonar-postgres 
        -p 5432:5432 
        -e POSTGRES_PASSWORD=sonarqube 
        -e PGDATA=/var/lib/postgresql/data/pgdata 
        -v /data/sonar-postgres/data:/var/lib/postgresql/data 
        -v /etc/localtime:/etc/localtime 
        postgres
        
        
    docker exec -it sonar-postgres /bin/bash
    psql --username postgres
    create user sonarqube with password 'sonarqube';
    create database sonar owner sonarqube;
    grant all privileges on database sonar to sonarqube;
    
    
    mkdir -p /data/sonarqube/{data,conf,extensions}
    chown -R 999.docker /data/sonarqube
    # 8.2和7.9版本的环境变量不一样,使用如下环境变量
    #SONAR_JDBC_URL=jdbc:postgresql://192.168.13.25/sonar
    #SONAR_JDBC_USERNAME=postgres
    #SONAR_JDBC_PASSWORD=sonarqube
        
    # 使用pgsql会报错 max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144],使用如下命名修改
    sysctl -w vm.max_map_count=262144
    
    
    sudo docker run -d --name sonarqube 
        --restart always 
        -e sonar.jdbc.username=sonarqube 
        -e sonar.jdbc.password=sonarqube 
        -e sonar.jdbc.url=jdbc:postgresql://192.168.13.25/sonar 
        -v /data/sonarqube/data:/opt/sonarqube/data 
        -v /data/sonarqube/extensions:/opt/sonarqube/extensions 
        -p 9000:9000 
        sonarqube:7.9-community
    

    4. 安装findbus

    sonarqube7.9安全findbus最新版本会报错

    使用3.11.1版:
    wget https://github.com/spotbugs/sonar-findbugs/releases/download/3.11.1/sonar-findbugs-plugin-3.11.1.jar
    放入/data/sonarqube/extensions/plugins目录
    docker重启sonarqube

    5. 配置sonarqube

    1. 使用admin登录sonarqube
    2. 进入"Quality Profiles"标签,设置"FindBugs Security Audit"为java默认扫描规则
    3. 进入"My Account" >> "Security"创建一个token,8973a97f41d3f21f3126539dac0b554474be5cb7

    6. 配置gitlab-ci

    6.1 maven

    gitlab-ci添加sonar stage,并添加以下job:

    job_sonar:
      extends: .main
      stage: sonar
      # image: maven:latest
      image: x.x.x.x/base/maven:3-jdk-8
      variables:
        SONAR_TOKEN: "8973a97f41d3f21f3126539dac0b554474be5cb7"
        SONAR_HOST_URL: "http://192.168.13.25:9000/"
        GIT_DEPTH: 0
      script:
        - mvn verify sonar:sonar -Dsonar.qualitygate.wait=true -DskipTests=true
      allow_failure: true
      only:
        - merge_requests
        - sonar-test # 分支名称
    

    6.2 npm

    需要安装sonar-scan,镜像dockerfile如下

    FROM x.x.x.x/base/node:latest
    ENV SONAR_SCANNER_VERSION=4.2.0.1873
    COPY .  /
    
    RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && 
        apk --no-cache add unzip openjdk8 && unzip sonar-scanner-cli-${SONAR_SCANNER_VERSION}-linux.zip && 
        sed -i 's/use_embedded_jre=.*/use_embedded_jre=false/g' /sonar-scanner-4.2.0.1873-linux/bin/sonar-scanner
    ENV PATH=$PATH:/sonar-scanner-${SONAR_SCANNER_VERSION}-linux/bin
    

    gitlab-ci添加sonar stage,并添加以下job:

    job_sonar:
      extends: .main
      stage: sonar
      image: x.x.x.x/base/node-sonar:1.0.0
      variables:
        SONAR_TOKEN: "8973a97f41d3f21f3126539dac0b554474be5cb7"
        SONAR_HOST_URL: "http://x.x.x.x:9000/"
        GIT_DEPTH: 0
      script:
        - ls -lh
        - npm install -D typescript
        - sonar-scanner -Dsonar.projectKey=${IMAGE} -Dsonar.sources=. -Dsonar.host.url=${SONAR_HOST_URL} -Dsonar.login=${SONAR_TOKEN} -Dsonar.sourceEncoding=utf-8
      allow_failure: true
      only:
        - merge_requests
        - sonar-test # 分支名称
    
  • 相关阅读:
    条件变量:为什么要与互斥锁配套使用?为什么要使用while来避免虚假唤醒?
    【转】高性能IO之Reactor模式
    LeetCode127:单词接龙
    CF1245F: Daniel and Spring Cleaning
    权值线段树学习笔记
    luogu_4317: 花神的数论题
    luogu_2605: 基站选址
    入门平衡树: Treap
    CF1244C: The Football Season
    luogu_1156: 垃圾陷阱
  • 原文地址:https://www.cnblogs.com/drfung/p/12721091.html
Copyright © 2011-2022 走看看