Docker, Docker-compose部署Sonarqube

参考文档

  • 镜像地址:

https://hub.docker.com/_/sonarqube/tags

  • Docker部署文档地址

Installing from Docker | SonarQube Docs

  • Docker-compose文档部署地址:

Installing from Docker | SonarQube Docs

部署镜像

2.1 docker部署

复制代码
# 宿主机执行
$. vi /etc/sysctl.conf
# 添加
vm.max_map_count = 655360

# 刷新配置, 使其生效
$. sysctl -p

# 下载镜像
# docker pull sonarqube:community
docker pull sonarqube:10.3.0-community

# 嵌入式数据库示例
$ docker run --rm \
-p 9000:9000 \
-v sonarqube_extensions:/opt/sonarqube/extensions \
<image_name>

# 第三方数据库示例
docker run -d --name sonarqube \
-p 9000:9000 \
-e SONAR_JDBC_URL=... \
-e SONAR_JDBC_USERNAME=... \
-e SONAR_JDBC_PASSWORD=... \
-v sonarqube_data:/opt/sonarqube/data \
-v sonarqube_extensions:/opt/sonarqube/extensions \
-v sonarqube_logs:/opt/sonarqube/logs \
<image_name>

# use
docker run -d --name sonarqube \
-p 9000:9000 \
-e SONAR_JDBC_URL=... \
-e SONAR_JDBC_USERNAME=... \
-e SONAR_JDBC_PASSWORD=... \
-v sonarqube_data:/opt/sonarqube/data \
-v sonarqube_extensions:/opt/sonarqube/extensions \
-v sonarqube_logs:/opt/sonarqube/logs \
sonarqube:10.3.0-community

2.2 docker-compose部署(use)

启动命令

复制代码
# 宿主机执行
$. vi /etc/sysctl.conf
# 添加
vm.max_map_count = 655360

# 刷新配置, 使其生效
$. sysctl -p

$. mkdir /usr/local/sonarqube -p
$. cd /usr/local/sonarqube
$. mkdir -p sonarqube_data sonarqube_extensions sonarqube_logs sonarqube_pdf
$. chmod 777 s* -R
$. vi docker-compose.yml

$. docker-compose up 

$. docker exec -it sonarqube-cn mkdir /opt/sonarqube/pdf-files -p
$. docker exec -it sonarqube-cn chmod 777 /opt/sonarqube/pdf-files -R


$. docker-compose up -d 
$. docker-compose down
$. docker-compose stop
$. docker-compose restart

# logs
$. docker-compose logs
$. docker-compose logs -f --tail=100 -t sonarqube-vm
$. docker-compose logs -f -n=100 -t sonarqube-vm

$. docker exec -it kafka-1 /bin/bash

# ======================= 其它命令参考 ==================== # 
# stop 指定容器
docker-compose stop kafka

# 删除容器
docker-compose rm -f kafka

docker-compose 文件

复制代码
version: "3"

services:
  sonarqube:
    hostname: sonarqube-vm
    container_name: sonarqube-cn
    # image: sonarqube:10.3.0-community
    image: sonarqube:9.9.3-community
    #sysctls:
    #  net.core.somaxconn: 10240
    #  vm.max_map_count: 655360
    privileged: true 
    restart: always  
    depends_on:
    - db
    environment:
      SONAR_JDBC_URL: jdbc:postgresql://db:5432/sonar
      SONAR_JDBC_USERNAME: sonar
      SONAR_JDBC_PASSWORD: sonar
    volumes:
      - ./sonarqube_data:/opt/sonarqube/data
      - ./sonarqube_pdf:/opt/sonarqube/pdf-files
      - ./sonarqube_extensions:/opt/sonarqube/extensions
      - ./sonarqube_logs:/opt/sonarqube/logs
    ports:
      - "9000:9000"
  db:
    hostname: postgresql-vm
    container_name: postgresql-cn
    privileged: true 
    restart: always
    image: postgres:12
    environment:
      POSTGRES_USER: sonar
      POSTGRES_PASSWORD: sonar
    volumes:
      - ./postgresql:/var/lib/postgresql
      - ./postgresql_data:/var/lib/postgresql/data

#volumes:
#  sonarqube_data:
#  sonarqube_extensions:
#  sonarqube_logs:
#  postgresql:
#  postgresql_data:

访问和配置中文界面

3.1 访问页面

运行成功后,浏览器访问 localhost:9000,账号密码均为 admin,配置中文界面,并重启。
路径: administrator -> marketplace -> 搜索chinese

将jar包放在/usr/local/sonarqube/sonarqube_extensions/downloads/文件夹下。

2.3 重启后即为中文界面

重启后Sonarqube会自动将jar包插件移动到/usr/local/sonarqube/sonarqube_extensions/plugins/文件夹下。

安装PDF插件

4.1 上传 sonar-pdf-plugin插件

插件源码地址:

下载地址:

适用SonarQube版本 : 5.5--9.9。

把下载好的插件放到Sonarqube安装目录的

******/usr/local/sonarqube/sonarqube_extensions/downloads/******目录下,

重启Sonarqube服务即可。

重启后Sonarqube会自动将jar包插件移动到/usr/local/sonarqube/sonarqube_extensions/plugins/文件夹下。

4.2 配置PDF导出插件

# 服务重启后可以看到配置页如下,PDF report为添加插件后新增页签。

填入Sonarqube管理员的 username password并保存,需要将原分析项目删除并重新分析项目。

4.3 创建测试项目

1)创建新令牌

注意:这里以Java语言Maven项目为例,其他语言的项目请自行测试

2)执行SonarQube扫描

进入要分析项目的根目录(当前目录下必须有pom.xml)cmd进入该目录下的命令界面执行mvn package sonar:sonar(旧版本可执行任意mvn命令后缀添加sonar:sonar进行代码分析,但较高版本sonar分析代码需要jar/war包)。

注意:需要mvn工具

mvn sonar:sonar \
-Dsonar.projectKey=Test \
-Dsonar.host.url= http://xxx.com \
-Dsonar.login=bd5695a663d82fac851e295fac3e43ccd3406136

3)成功分析代码并产出PDF会额外打印如下信息

4)下载PDF

点击项目下"更多 -->> Download Pdf Report"

至此,Sonarqube导出PDF分析报告部署完毕。

相关推荐
熊大如如1 小时前
Java 反射
java·开发语言
猿来入此小猿1 小时前
基于SSM实现的健身房系统功能实现十六
java·毕业设计·ssm·毕业源码·免费学习·猿来入此·健身平台
goTsHgo2 小时前
Spring Boot 自动装配原理详解
java·spring boot
卑微的Coder2 小时前
JMeter同步定时器 模拟多用户并发访问场景
java·jmeter·压力测试
pjx9872 小时前
微服务的“导航系统”:使用Spring Cloud Eureka实现服务注册与发现
java·spring cloud·微服务·eureka
多多*3 小时前
算法竞赛相关 Java 二分模版
java·开发语言·数据结构·数据库·sql·算法·oracle
爱喝酸奶的桃酥3 小时前
MYSQL数据库集群高可用和数据监控平台
java·数据库·mysql
唐僧洗头爱飘柔95274 小时前
【SSM-SSM整合】将Spring、SpringMVC、Mybatis三者进行整合;本文阐述了几个核心原理知识点,附带对应的源码以及描述解析
java·spring·mybatis·springmvc·动态代理·ioc容器·视图控制器
骑牛小道士4 小时前
Java基础 集合框架 Collection接口和抽象类AbstractCollection
java
alden_ygq4 小时前
当java进程内存使用超过jvm设置大小会发生什么?
java·开发语言·jvm