docker-compose部署sonarqube全过程

 更新时间:2025年12月13日 14:20:01   作者:运维开发那些事  
本文介绍了如何使用docker-compose部署sonarqube,并详细说明了部署过程中需要注意的事项,包括数据库选择、插件安装等

为了简单高效地部署及管理sonar,决定采用docker-compose版本进行部署。亲测无坑,因为坑以及被我踩完了

1、部署

首先需要安装数据库,开源的可以用 mysql 或者 postgresql 。

官网上已经声明 sonarQube 7.9 版本以上不再支持 mysql 了,我们为了以后升级新版本不做数据库迁移,尽量使用 postgresql

可参考官方文档:

https://docs.sonarsource.com/sonarqube-community-build/

mkdir -p /opt/sonarqube/sonarqube/{logs,conf,data,extensions}
mkdir -p /opt/sonarqube/postgres/{postgresql,data}

vim /data/sonar/sonar-compose.yml

cat > /opt/sonarqube/docker-compose.yml <<EOF
version: '3'
services:
  postgres:
    image: postgres:12
    container_name: postgres
    restart: always
    privileged: true
    volumes:
      - ./postgres/postgresql:/var/lib/postgresql
      - ./postgres/data:/var/lib/postgresql/data
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "5432:5432"
    environment:
      POSTGRES_USER: sonar 
      POSTGRES_PASSWORD: sonar 
      POSTGRES_DB: sonar 
      TZ: Asia/Shanghai

  sonar:
    image: sonarqube:8.9.10-community
    container_name: sonar
    restart: always
    privileged: true
    depends_on:
      - postgres 
    volumes:
      - ./sonarqube/logs:/opt/sonarqube/logs
      - ./sonarqube/conf:/opt/sonarqube/conf
      - ./sonarqube/data:/opt/sonarqube/data
      - ./sonarqube/extensions:/opt/sonarqube/extensions
    ports:
      - "9000:9000"
    environment:
      SONARQUBE_JDBC_USERNAME: sonar
      SONARQUBE_JDBC_PASSWORD: sonar
      SONARQUBE_JDBC_URL: "jdbc:postgresql://postgres:5432/sonar"
EOF
cd /opt/sonarqube
docker-compose up -d

默认账号密码 admin/admin

2、插件安装

中文插件

由于找不到7.4版本,所以我们选择离线安装

cd /opt/sonarqube/sonarqube/extensions/plugins

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

docker restart sonar

分支插件

社区版默认只支持主分支的代码扫描,所以要支持其他分支需要下载一个插件,

注意:下载的插件版本要检查是否支持你正在使用的sonarqube版本

下载地址

https://github.com/mc1arke/sonarqube-community-branch-plugin/releases

1、安装插件
cd /opt/sonarqube/sonarqube/extensions/plugins
wget https://github.com/mc1arke/sonarqube-community-branch-plugin/releases/download/1.18.0/sonarqube-community-branch-plugin-1.18.0.jar

2、添加配置文件
cd /opt/sonarqube/sonarqube/conf
cat > sonar.properties <<EOF
sonar.web.javaAdditionalOpts=-javaagent:./extensions/plugins/sonarqube-community-branch-plugin-1.8.0.jar=web
sonar.ce.javaAdditionalOpts=-javaagent:./extensions/plugins/sonarqube-community-branch-plugin-1.8.0.jar=ce
EOF

docker restart sonar

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Docker拉取镜像的解决方案

    Docker拉取镜像的解决方案

    署Docker最耗时间的就是下载镜像(images)了,而且还要考虑下载镜像的版本是否合适,那么有没有办法快速下载镜像呢?本文给大家介绍Docker拉取镜像的解决方案,一起看看吧
    2023-11-11
  • docker容器日志查看常用命令及线上日志排查

    docker容器日志查看常用命令及线上日志排查

    这篇文章主要给大家介绍了关于docker容器日志查看常用命令及线上日志排查的相关资料, Docker是一种容器化技术,使用它的过程中需要查看Docker的日志输出来调试或解决问题,需要的朋友可以参考下
    2024-01-01
  • 关于docker部署的jenkins跑git上的程序的问题

    关于docker部署的jenkins跑git上的程序的问题

    这篇文章主要介绍了docker部署的jenkins跑git上的程序的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • docker容器无法访问宿主机端口的解决

    docker容器无法访问宿主机端口的解决

    这篇文章主要介绍了docker容器无法访问宿主机端口的解决方案,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • Docker 教程之私有仓库详解

    Docker 教程之私有仓库详解

    这篇文章主要介绍了Docker 教程之私有仓库详解的相关资料,需要的朋友可以参考下
    2016-12-12
  • 宝塔创建Docker容器配置nginx的实现步骤

    宝塔创建Docker容器配置nginx的实现步骤

    本文主要介绍了宝塔创建Docker容器配置nginx的实现步骤,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-06-06
  • docker镜像压缩squash的实现

    docker镜像压缩squash的实现

    本文主要介绍了docker镜像压缩squash的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • docker中使用opwrt详解

    docker中使用opwrt详解

    本文主要介绍了在Docker中配置OpenWRT的详细步骤,首先需要配置Docker网络,包括开启网卡混杂模式和创建Docker的虚拟网络;然后需要准备OpenWRT镜像,包括获取相应镜像和解压导入Docker网络;接着生成并开启配置好的容器,修改容器内的网络设置
    2024-10-10
  • docker容器调用yum报错的解决办法

    docker容器调用yum报错的解决办法

    在本篇文章里小编给大家分享的是关于docker容器调用yum报错的解决办法,有兴趣的朋友们可以参考下。
    2020-03-03
  • docker内部容器之间的端口访问实现方法

    docker内部容器之间的端口访问实现方法

    alpine-client 与 alpine-server 两容器,前者访问后者监听之端口,以此探析 Docker 内部容器间端口访问机制,这篇文章主要介绍了如何实现docker内部容器之间的端口访问,需要的朋友可以参考下
    2024-04-04

最新评论