【ubuntu】使用docker安装sonarqube9.8.0

一、场景

由于公司想要检查代码的质量,进行静态代码扫描,所以采用了通用的sonarqube,当然也会配合一些其他的工具,本文主要讲解使用sonar的安装及问题

由于版权问题,所以使用社区版,并且是长期支持版9.8.0

 

 

二、官网

https://www.sonarsource.com/products/sonarqube/downloads/

 

 

三、文档

  https://docs.sonarsource.com/sonarqube-server/latest/try-out-sonarqube/#installing-a-local-instance-of-sonarqube

 

四、安装方法

可以去官方查找镜像

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

选择社区长期支持版9.8.0  

## 创建数据目录
mkdir -p /data/sonarqube/{sonarqube_conf,sonarqube_extensions,sonarqube_logs,sonarqube_data}
chmod 777 -R /data/sonarqube/

## 运行
docker run  -itd  --name sonarqube \
    -p 9000:9000 \
    -v /data/sonarqube/sonarqube_conf:/opt/sonarqube/conf \
    -v /data/sonarqube/sonarqube_extensions:/opt/sonarqube/extensions \
    -v /data/sonarqube/sonarqube_logs:/opt/sonarqube/logs \
    -v /data/sonarqube/sonarqube_data:/opt/sonarqube/data \
    sonarqube:9.8.0-community  # 填写实际的镜像名
## 验证
docker logs -f sonarqube

Once your instance is up and running, Log in to http://localhost:9000 using System Administrator credentials:

  • login: admin
  • password: admin

默认使用的是内置数据库

 

五、配置中文

 重启容器即可

docker restart sonarqube

 

 

六、安装插件

根据自己需要安装即可

 

七、使用docker-compose进行安装

创建docker-compose.yml

里面路径信息可以根据实际进行修改

version: '3'
services:
  postgres:
    image: postgres:14.5
    restart: always
    container_name: postgres
    ports:
      - 5432:5432
    volumes:
      - /docker/sonar/postgres/postgresql:/var/lib/postgresql
      - /docker/sonar/postgres/data:/var/lib/postgresql/data
      - /etc/localtime:/etc/localtime:ro
    environment:
      TZ: Asia/Shanghai
      POSTGRES_USER: sonar
      POSTGRES_PASSWORD: sonar
      POSTGRES_DB: sonar

  sonar:
    image: sonarqube:9.8.0-community
    container_name: sonar
    depends_on:
      - postgres
    volumes:
      - /docker/sonar/sonarqube/extensions:/opt/sonarqube/extensions
      - /docker/sonar/sonarqube/logs:/opt/sonarqube/logs
      - /docker/sonar/sonarqube/data:/opt/sonarqube/data
      - /docker/sonar/sonarqube/conf:/opt/sonarqube/conf
      # 设置与宿主机时间同步      - /etc/localtime:/etc/localtime:ro
    ports:
      - 9000:9000
    command:
      # 内存设置      - -Dsonar.ce.javaOpts=-Xmx2048m
      - -Dsonar.web.javaOpts=-Xmx2048m
      # 设置服务代理路径      - -Dsonar.web.context=/
      # 此设置用于集成gitlab时,回调地址设置      - -Dsonar.core.serverBaseURL=http://172.16.3.253:9000
    environment:
      TZ: Asia/Shanghai
      SONARQUBE_JDBC_USERNAME: sonar
      SONARQUBE_JDBC_PASSWORD: sonar
      SONARQUBE_JDBC_URL: jdbc:postgresql://postgres:5432/sonar

 注意:

如果不使用内置的数据库,就需要给服务器配置参数

#vim /etc/sysctl.conf
vm.max_map_count=262144

关于ES报错

解决报错max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]-CSDN博客

 

然后重启电脑进行安装

docker-compose up -d

可以使用-f 指定前面的配置yml文件, 如果名称不是docker-compose.yml

 

 

八、关于使用外置数据库

支持的数据库种类

docs.sonarsource.com/sonarqube-server/latest/setup-and-upgrade/installation-requirements/database-requirements/

可以使用docker安装postgresql

postgres - Official Image | Docker Hub

 

 

 

 

 

参考链接:

Docker搭建sonarqube - 对你无可奈何1988 - 博客园

sonarqube教程:docker-compose安装sonarqube及sonar-scanner插件的使用_sonarqube docker-compose-CSDN博客

 

posted @ 2025-04-18 18:53  代码诠释的世界  阅读(178)  评论(0)    收藏  举报