Docker-compose部署SonarQube服务

SonarQube使用介绍

SonarQube 是一个开源的代码分析平台, 用来持续分析和评测项目源代码的质量。 通过SonarQube我们可以检测出项目中重复代码, 潜在bug, 代码规范,安全性漏洞等问题, 并通过SonarQube web UI展示出来。

SonarQube由服务器、数据库、扫描仪和插件4部分组成。

部署SonarQube

sysctl设置

echo "vm.max_map_count=262144" >> /etc/sysctl.conf

sysctl -p

创建docker-compose.yml

创建一个sonar的文件夹,在文件夹下面创建docker-compose.yml文件
这里有个版本的坑要注意一下:

sonarqube:7.8-community 是 sonar 对 jdk1.8 的最后一个版本,从 7.9 以后 sonar 最低支持版本为 jdk 1.11

如果你环境是jdk1.8的话 你一定要选这个版本。

version: '3'
services: 
  postgres: 
    image: nanlist/postgres12.3:v1
    restart: always
    container_name: sonarqube_postgres
    ports:
      - 5432:5432
    volumes:
      # 设置与宿主机时间同步
      - /etc/localtime:/etc/localtime:ro
    environment:
      TZ: Asia/Shanghai    
      POSTGRES_USER: sonar   
      POSTGRES_PASSWORD: sonar
      POSTGRES_DB: sonar
    networks: 
      - sonar-network
  sonar:
    image: nanlist/sonarqube7.8-community:v1
    restart: always 
    container_name: sonarqube
    depends_on:
      - postgres
    volumes:
      # 设置与宿主机时间同步
      - /etc/localtime:/etc/localtime:ro      
    ports:
      - 9000:9000
    environment:
      SONARQUBE_JDBC_USERNAME: sonar
      SONARQUBE_JDBC_PASSWORD: sonar
      SONARQUBE_JDBC_URL: jdbc:postgresql://postgres:5432/sonar
    networks: 
      - sonar-network
networks:
  sonar-network:
    driver: bridge

Docker-compose部署SonarQube服务_第1张图片

启动容器

启动:docker-compose up -d
停止:docker-compose down
启动:docker-compose start
停止:docker-compose stop

Docker-compose部署SonarQube服务_第2张图片

访问

页面初始化需要一段时间
浏览器访问:ip+端口,如:10.10.11.79:9000
管理员账号密码都是:admin
Docker-compose部署SonarQube服务_第3张图片

安装中文汉化插件

搜索chinese
Docker-compose部署SonarQube服务_第4张图片

如果下载失败选择手动下载:

cd /home/sonar 下面

这一步也得找对应的版本(好坑的)
Docker-compose部署SonarQube服务_第5张图片
下载jar包:

wget https://github.com/xuhuisheng/sonar-l10n-zh/releases/download/sonar-l10n-zh-plugin-1.28/sonar-l10n-zh-plugin-1.28.jar

通过docker cp 把jar包上传到sonar容器中

docker cp sonar-l10n-zh-plugin-1.28.jar  sonarqube:/opt/sonarqube/extensions/plugins/

检查是否拷贝成功

docker exec -it sonarqube bash
ls /opt/sonarqube/extensions/plugins/

Docker-compose部署SonarQube服务_第6张图片

docker重启sonarqube

退出容器,重新启动一下:

docker restart sonarqube

Docker-compose部署SonarQube服务_第7张图片
SonarQube 需要数据库的支持,用于存储检测项目后的分析数据,同时为了实现可持续监测,还需要持续集成工具(如Jenkins)的支持,在构建版本前,通过Jenkins+Sonar 插件执行项目分析指令,最终的结果会通过SonarQube 服务器的Web 页面展示。

你可能感兴趣的:(DevOps,docker,k8s,harbor,gitlab,数据库,docker,容器,java)