docker compose 下安装 sonarqube(带多分支插件)

这篇具有很好参考价值的文章主要介绍了docker compose 下安装 sonarqube(带多分支插件)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、前言

docker compose 方式安装 sonarqube 是我最推荐的方式。

理由有如下:

1、资源占用少。

2、sonarqube 依赖 Elasticsearch(存储代码扫描报告)、postgres(存储规则数据、账号密码等)。而 Elasticsearch 本身是不能用 root 账户启动的(如果是 tar 包安装在启动 sonarqube 的时候经常忘记切换账户而启动失败),postgres 也得安装,java 也得装(java 还有版本的限制,高版本的 sonarqube 都依赖到 java 11\java 17 很容易跟项目的Java版本冲突)。

3、配置操作简单(毕竟时间就是生命)。

二、安装准备

1、一台2核4G的虚拟机(不管是VMWare还是阿里云ECS,2C4G至少保证服务启动起来,虚拟机不会卡死)。

2、安装有 docker 和 docker compose(可以看我的博文 3、CentOS7 上安装 Docker-CSDN博客)

三、版本选择

1、sonarqube 版本

现在sonarqube官网 上最新版是10.4,但是长期维护版是9.9.4,所以我们 sonarqube 版本选用 9.9.4 这个版本。

docker-compose sonarqube,Sonarqube,docker,容器,运维

2、sonarqube-community-branch-plugin 版本

现在我们官网上下到的 sonarqube 都是社区版 Community Edition,社区版代码扫描分支只支持 master,要多分支支持,需要再下载一个插件 sonarqube-community-branch-plugin,放到 /opt/sonarqube/extensions/plugins 下面(注意放到别的目录不起作用)。

我们进到 sonarqube-community-branch-plugin的github。

在兼容性这一块,sonarqube 9.9 提供的是 1.14.0 版本的插件。

docker-compose sonarqube,Sonarqube,docker,容器,运维

切换到 1.14.0 Tags

docker-compose sonarqube,Sonarqube,docker,容器,运维

在安装文档里,有 docker compose 的 yml。

可以直接拿来用,但需要改造。

docker-compose sonarqube,Sonarqube,docker,容器,运维

四、安装

1、docker-compose.yml

version: "2"

services:
  sonarqube:
    image: sonarqube:lts
    container_name: sonarqube
    depends_on:
      - db
    ports:
      - 9000:9000
    networks:
      - sonarnet
    environment:
      SONARQUBE_JDBC_URL: jdbc:postgresql://db:5432/sonar
      SONARQUBE_JDBC_USERNAME: sonar
      SONARQUBE_JDBC_PASSWORD: sonar
    volumes:
      - ./sonarqube/conf:/opt/sonarqube/conf
      - ./sonarqube/data:/opt/sonarqube/data
      - ./sonarqube/extensions:/opt/sonarqube/extensions
      - ./sonarqube/lib/bundled-plugins-plugins:/opt/sonarqube/lib/bundled-plugins
      - ./sonarqube-community-branch-plugin-1.14.0.jar:/opt/sonarqube/extensions/plugins/sonarqube-community-branch-plugin.jar
      - ./sonarqube-community-branch-plugin-1.14.0.jar:/opt/sonarqube/lib/common/sonarqube-community-branch-plugin.jar

  db:
    image: postgres
    container_name: postgres
    networks:
      - sonarnet
    environment:
      POSTGRES_USER: sonar
      POSTGRES_PASSWORD: sonar
      POSTGRES_DB: sonar
    volumes:
      - ./postgresql:/var/lib/postgresql
      - ./postgresql/data:/var/lib/postgresql/data
      
networks:
  sonarnet:
    driver: bridge   

说明:

services 表示有几个服务,当前YML有两个服务 sonarqube、db

image: sonarqube:lts 

表示拉取的镜像是 sonarqube:lts  sonarqube 是镜像名称,lts 是镜像版本,Long Term Support 就是 9.9.4

depends_on 表示服务的依赖关系,定义服务间的启动顺序。sonarqube 依赖 db,则要 db 容器先启动,sonarqube 再启动。

environment 类似于 docker run -e ,有两种格式

表示创建的 postgres 数据库 用户名、密码、默认数据库 都是 sonar

environment:
  - POSTGRES_USER=sonar
  - POSTGRES_PASSWORD=sonar
  - POSTGRES_DB=sonar
environment:
  POSTGRES_USER: sonar
  POSTGRES_PASSWORD: sonar
  POSTGRES_DB: sonar

volumes 表示挂载的容器数据卷

类似于 docker run -v

volumes 左边的这些目录在宿主机上要先创建。

./ 表示当前目录

docker-compose sonarqube,Sonarqube,docker,容器,运维

 2、创建挂载目录

先把 sonarqube-community-branch-plugin-1.14.0.jar 和 docker-compose.yml 放到虚拟机某个路径下

docker-compose sonarqube,Sonarqube,docker,容器,运维

创建挂载目录

docker-compose sonarqube,Sonarqube,docker,容器,运维

修改目录权限

chmod 777 -R 目录
-R 表示级联地修改,包括它下面的子路径

docker-compose sonarqube,Sonarqube,docker,容器,运维

说明:

之所以要修改,是因为 sonarqube ES 在启动的时候,会报没有权限创建路径

docker-compose sonarqube,Sonarqube,docker,容器,运维

3、挂载 sonar.properies

将 sonar.properies 放置到 /sonarqube/conf 目录下,让它能挂载进容器的 /opt/sonarqube/conf

docker-compose sonarqube,Sonarqube,docker,容器,运维

sonar.properies 配置如下

sonar.web.javaAdditionalOpts=-javaagent:./extensions/plugins/sonarqube-community-branch-plugin.jar=web
sonar.ce.javaAdditionalOpts=-javaagent:./extensions/plugins/sonarqube-community-branch-plugin.jar=ce

sonar.jdbc.url=jdbc:postgresql://db:5432/sonar?currentSchema=public
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar

说明

1、上面两项 javaAdditionalOpts 是 sonarqube-community-branch-plugin 插件所需要的。

docker-compose sonarqube,Sonarqube,docker,容器,运维

2、下面三项是 sonarqube 连接 postgre 所需要的。

如果没有配置下面三项,sonarqube 启动起来会以内存模式启动。

Embedded database should be used for evaluation purposes only

docker-compose sonarqube,Sonarqube,docker,容器,运维

docker-compose.yml 里面的 environment 没起作用。

docker-compose sonarqube,Sonarqube,docker,容器,运维

3、还需要注意的一点是 

volumes 这里的名称,要和 javaAdditionalOpts 里面的名称对应上,否则 sonarqube 启动会找不到插件。

docker-compose sonarqube,Sonarqube,docker,容器,运维

docker-compose sonarqube,Sonarqube,docker,容器,运维

4、增加可用的内存区域

永久修改

vim /etc/sysctl.conf
# 在最下面添加
vm.max_map_count=262144
# 使生效
sysctl -p

docker-compose sonarqube,Sonarqube,docker,容器,运维

docker-compose sonarqube,Sonarqube,docker,容器,运维

说明:

如果不修改,sonarqube 启动起来,会报虚拟内存区域不够

max virtual memory areas vm.max map count [65530] is too low, increase to at least [262144]

docker-compose sonarqube,Sonarqube,docker,容器,运维

 5、docker compose up -d

在 docker-compose.yml 文件所在目录,执行命令

docker compose up -d
-d 表示后台启动

docker-compose sonarqube,Sonarqube,docker,容器,运维

6、日志查看是否启动成功

# 查看全部容器实例,运行的,与不在运行的都显示出来
docker ps -al
# 查看容器日志
docker logs [容器ID|容器名]

docker-compose sonarqube,Sonarqube,docker,容器,运维

 es、web、ce 启动成功,就证明 sonarqube 启动是成功的

docker-compose sonarqube,Sonarqube,docker,容器,运维

日志中还提示你,默认的 admin 密码还没修改,要赶紧去修改。

Default Administrator credentials are still being used.

docker-compose sonarqube,Sonarqube,docker,容器,运维

7、登录验证

http://你的IP:9000/

默认管理员账号   admin/admin 

docker-compose sonarqube,Sonarqube,docker,容器,运维

说明:

这个可以通过配置文件 sonar.properties 修改

sonar.login=admin
sonar.password=admin

首次登录,会叫你修改密码

docker-compose sonarqube,Sonarqube,docker,容器,运维

接着会有插件风险提示,因为 

sonarqube-community-branch-plugin 插件不是 sonarqube 官网插件,会有风险提示。

docker-compose sonarqube,Sonarqube,docker,容器,运维

点击 I understand the risk 后,就进入 sonarqube web 界面了。

分别点击 1、2、3 就能在应用市场看到我们已经安装的插件里面,有

sonarqube-community-branch-plugin

docker-compose sonarqube,Sonarqube,docker,容器,运维文章来源地址https://www.toymoban.com/news/detail-849535.html

到了这里,关于docker compose 下安装 sonarqube(带多分支插件)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • docker-compose安装

    一、安装docker(二进制方式) 1、下载docker二进制包 2、添加执行权限并解压 3、二进制文件放到/usr/bin下:mv docker/* /usr/bin/ 4、创建docker配置文件 5、docker 被systemd管理 6、重新加载配置文件: 7、启动并设为开机自启: 8、查看版本:docker --version 二、安装docker-compose 1、使用g

    2024年02月15日
    浏览(39)
  • Docker-Compose的安装

    一、什么是Docker-Compose Compose项目来源于之前的fig项目,使用 python语言 编写,与docker/swarm配合度很高。Compose 是 Docker 容器进行编排的工具,定义和运行多容器的应用,可以一条命令启动多个容器,使用Docker Compose不再需要使用shell脚本来启动容器。 Compose 通过一个配置文件来

    2024年02月06日
    浏览(45)
  • 安装使用docker-compose

    Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排 Docker-Compose将所管理的容器分为三层,分别是工程(project),服务(service)以及容器(container)。Docker-Compose运行目录下的所有文件(docker-compose.yml,extends文件或环境变量文件等)组成一个工程,若

    2024年02月15日
    浏览(36)
  • docker-compose安装脚本

    portainer mysql rabbitMQ

    2024年02月12日
    浏览(48)
  • Docker 与 docker-compose 的安装

    Centos 7.6 docker 安装包: https://download.docker.com/linux/static/stable/x86_64/docker-20.10.22.tgz docker-compose 安装包: https://github.com/docker/compose/releases/download/v2.15.0/docker-compose-linux-x86_64 安装 docker 可以直接使用 wget 命令直接下载: 如果网络不好或者无法下载,可以在外部用下载器进行加速下

    2024年02月05日
    浏览(45)
  • 【Docker】Centos安装docker-compose

    直接从GitHub下载docker到本地的/usr/local/bin/目录下,赋予读写权限,检查,就可以使用了; 下载链接 https://github.com/docker/compose/releases/

    2024年02月13日
    浏览(46)
  • 【Ubuntu】安装docker-compose

    要在Ubuntu上安装Docker Compose,可以按照以下步骤进行操作:   下载 Docker Compose 二进制文件: 授予执行权限: 验证安装: 运行以下命令来验证 Docker Compose 是否已正确安装: 如果一切顺利,应该会显示安装的 Docker Compose 的版本号。 注意:根据你的系统配置,你可能需要在上

    2024年02月16日
    浏览(38)
  • docker-compose安装skywalking

    我是在centos7的虚拟机中安装的,首先要安装docker、 docker-compose (这俩尽量安装新一点的版本,否则不支持version3.8的yml)。虚拟机内存要尽量设置大一点,最好是4G. docker-compose.yml 如下 如果docker-compose不支持version3.8,需要升级。(我升级到的是2.7.0) 上述文件中volumes 挂载路径提

    2024年02月11日
    浏览(38)
  • Docker-Compose 安装rabbitmq

    2024年02月13日
    浏览(34)
  • centos安装docker-compose

    docker compose是用于定义和运行多容器docker应用程序的工具,compose 通过一个配置文件来管理多个docker容器。可以使用docker-compose.yml脚本来启动、停止、重启应用,进行docker容器的编排和管理。但是docker compose并没有实现容器的负载均衡,还需要借助其他工具实现。 docker官网地址

    2024年02月13日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包