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

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 左边的这些目录在宿主机上要先创建。
> 
> 
> ./ 表示当前目录
> 
> 
> ![](https://img-blog.csdnimg.cn/direct/05faa076e8f747d48ad7ac18cd7bc1de.png)
> 
> 
> 


###  2、创建挂载目录


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


![](https://img-blog.csdnimg.cn/direct/9daaf7053b7e43adbc4d74aac4f95f74.png)


创建挂载目录


![](https://img-blog.csdnimg.cn/direct/728d4c48ee304a78936284aa7ca685c6.png)


修改目录权限



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


![](https://img-blog.csdnimg.cn/direct/41c94e0076a94ec0a5d31f9bfdc60c1f.png)



> 
> **说明:**
> 
> 
> 之所以要修改,是因为 sonarqube ES 在启动的时候,会报没有权限创建路径
> 
> 
> ![](https://img-blog.csdnimg.cn/direct/acdbaa3f91ae49839eaa3bbb9f11e52a.png)
> 
> 
> 


### 3、挂载 sonar.properies


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


![](https://img-blog.csdnimg.cn/direct/d0f33a7efeea44bd8f57bb2cab61ed87.png)


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 插件所需要的。
> 
> 
> ![](https://img-blog.csdnimg.cn/direct/e8135c7059cd4b35b2caf011b3b9bd06.png)
> 
> 
> 2、下面三项是 sonarqube 连接 postgre 所需要的。
> 
> 
> 如果没有配置下面三项,sonarqube 启动起来会以内存模式启动。
> 
> 
> Embedded database should be used for evaluation purposes only
> 
> 
> ![](https://img-blog.csdnimg.cn/direct/aefdffab553b4b77a097e308b77ef96c.png)
> 
> 
> docker-compose.yml 里面的 environment 没起作用。
> 
> 
> ![](https://img-blog.csdnimg.cn/direct/a57a2d0ff5244aaabb5414e531ba6f2e.png)
> 
> 
> 3、还需要注意的一点是 
> 
> 
> volumes 这里的名称,要和 javaAdditionalOpts 里面的名称对应上,否则 sonarqube 启动会找不到插件。
> 
> 
> ![](https://img-blog.csdnimg.cn/direct/c0d76ed4ff094534bdf24c4624f1a948.png)
> 
> 
> ![](https://img-blog.csdnimg.cn/direct/7b408119939647d9a848e750622701f8.png)
> 
> 
> 


### 4、增加可用的内存区域


永久修改



vim /etc/sysctl.conf

在最下面添加

vm.max_map_count=262144

使生效

sysctl -p


![](https://img-blog.csdnimg.cn/direct/9cb9abaafca14e72a0f58fc51e8a3da5.png)


![](https://img-blog.csdnimg.cn/direct/83c13c13abc14553a9a72295326593da.png)



> 
> **说明:**
> 
> 
> 如果不修改,sonarqube 启动起来,会报虚拟内存区域不够
> 
> 
> max virtual memory areas vm.max map count [65530] is too low, increase to at least [262144]
> 
> 
> ![](https://img-blog.csdnimg.cn/direct/33f4e9696a794c5889c90c7c6645e5e5.png)
> 
> 
> 


###  5、docker compose up -d


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



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


![](https://img-blog.csdnimg.cn/direct/852085d802b24afaab8c6a5858276d96.png)




### 最后的话

最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!

### 资料预览

给大家整理的视频资料:

![](https://img-blog.csdnimg.cn/img_convert/d33e0087e29fa3146aab88e9bdb05d70.png)

给大家整理的电子书资料:

  

![](https://img-blog.csdnimg.cn/img_convert/cd19f3e6c0692dfb111c87a331d07d09.png)



**如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!**

**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/topics/618542503)**


**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
**如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!**

**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/topics/618542503)**


**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值