• 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 # 分支名称
    
  • 相关阅读:
    组合算法问题
    递归之全排列问题
    递归之整数划分问题
    利用Python完成一个小游戏:随机挑选一个单词,并对其进行乱序,玩家要猜出原始单词
    对数组元素进行排序的方法总结(利用C++)
    用c++语言编写函数 int index(char *s,char * t),返回字符串t在字符串s中出现的最左边的位置,如果s中没有与t匹配的子串,则返回-1。类似于索引的功能。
    用MFC完成一个简单的猜数字游戏: 输入的四位数中,位置和数字都正确为A,数字相同而位置不同的为B。
    用Matlab完成:从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
    利用matlab实现以下功能:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
    白书_倒三角形_C语言描述
  • 原文地址:https://www.cnblogs.com/drfung/p/12721091.html
Copyright © 2020-2023  润新知