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

相关推荐
我是咸鱼不闲呀15 分钟前
力扣Hot100系列19(Java)——[动态规划]总结(上)(爬楼梯,杨辉三角,打家劫舍,完全平方数,零钱兑换)
java·leetcode·动态规划
加油,小猿猿41 分钟前
Java开发日志-双数据库事务问题
java·开发语言·数据库
MonkeyKing_sunyuhua44 分钟前
docker compose up -d --build 完全使用新代码打包的方法
docker·容器·eureka
yuluo_YX1 小时前
Reactive 编程 - Java Reactor
java·python·apache
山岚的运维笔记1 小时前
SQL Server笔记 -- 第20章:TRY/CATCH
java·数据库·笔记·sql·microsoft·sqlserver
醇氧1 小时前
【docker】mysql 8 的健康检查(Health Check)
mysql·docker·容器
南极企鹅1 小时前
springBoot项目有几个端口
java·spring boot·后端
清风拂山岗 明月照大江2 小时前
Redis笔记汇总
java·redis·缓存
技术路上的探险家2 小时前
Ubuntu下Docker与NVIDIA Container Toolkit完整安装教程(含国内源适配)
linux·ubuntu·docker
xiaoxue..2 小时前
合并两个升序链表 与 合并k个升序链表
java·javascript·数据结构·链表·面试