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分析报告部署完毕。

相关推荐
万亿少女的梦1684 分钟前
基于Spring Boot的楚雄旅游景区门票售卖系统设计与实现
java·spring boot·mysql·vue·系统设计
不会写代码的ys5 分钟前
C++复习篇
java·开发语言·c++
我是个假程序员29 分钟前
实例化动作脚本类,并执行,执行类似N_F1_SAVE.java这种
java·nc
青山木41 分钟前
Hot 100 --- LRU 缓存
java·数据结构·算法·leetcode·链表·缓存·哈希
花生了什么事o43 分钟前
Java 线程池:从参数到拒绝策略
java·jvm
长孙豪翔1 小时前
引发事件的问题
java·linux·数据库
happyprince1 小时前
09-vLLM KV Cache 系统完整分析
java·spring·vllm
掉鱼的猫1 小时前
ReActAgent 使用指南:构建会思考、能行动的 AI Agent
java·llm·agent
pp起床1 小时前
黑马点评 - 短信验证码登录实现
java·开发语言·tomcat
qq_349447951 小时前
十四、k8s集群安装kube-state-metrics 组件
docker·容器·kubernetes