首页 > 数据库 >sonarqube及postgresql部署文档

sonarqube及postgresql部署文档

时间:2023-03-17 09:48:08浏览次数:52  
标签:compose postgresql postgres sonarqube 文档 sonar docker

 

 

同样通过compose来部署sonarqube及postgresql,由于高版本的sonarqube不支持mysql,所以用通用postgresql

 

#这里我们安装的SonarQube依赖ELK,我们这里需要修改系统控制权限,原因在于ElasticSearch需要开辟一个65536字节以上空间的虚拟内存。Linux默认不允许任何用户和应用程序直接开辟这么大的虚拟内存,这样我们就需要去修改sysctl.conf文件。
sudo sysctl -w vm.max_map_count=262144
#或者
vi /etc/sysctl.conf
#添加参数:新增如下内容在sysctl.conf文件中,当前用户拥有的内存权限大小
vm.max_map_count=262144
#重启生效:让系统控制权限配置生效
sysctl -p

 

 

由于sonarqube安装中文插件可能会出现异常,因此常用操作是手动部署汉化包,并且sonarqube需要和汉化包和postgresql版本配套。但由于是通过docker下载的镜像,是最新版,没找到查看版本信息,建议照网上教程下载固定版本

通过

 

docker pull sonarqube
docker pull postgres

 

 

下载镜像文件

由于sonarqube本身是UTC时区,以及汉化问题,所以需要自己重新制作一次镜像文件

下载汉化包

 

 

https://github.com/xuhuisheng/sonar-l10n-zh/releases

 

编写Dockerfile

 

 

FROM sonarqube
# 作者信息
MAINTAINER sonarqube from date UTC by Asia/Shanghai "david"
#设置系统时间
ENV TZ Asia/Shanghai
#将中文jar包复制到对应目录
ADD sonar-l10n-zh-plugin-9.4.jar /opt/sonarqube/extensions/plugins/

 

构建镜像

 

 

#注意最后有个点
docker build --rm -t david/sonarqube .

 

构建过程中报错了,但是最后镜像是可用的,所以暂时没去查原因

 

#查看镜像文件
docker images
#直接运行镜像
docker run -itd --name=sonarqube -p 9000:9000 david/sonarqube:
# 查看一下运行日志是否有问题(可选择不看,看的话看到SonarQube is up的字样说明已经启动成功了)
docker logs -f sonarqube
#把容器里面的内容拷贝到宿主机下,用于compose做数据卷
docker cp sonarqube:/opt/sonarqube /home/sonarqube/
#查看效果,看是否成功启动,并且汉化
#确认成功后停止停止容器并删除
docker stop sonarqube
docker rm sonarqube

 

compose.yml文档如下:

 

services:
postgres:
container_name: postgres
image: 'postgres'
restart: unless-stopped
networks:
- sonarqube-network
environment:
- POSTGRES_DB=sonar
- POSTGRES_USER=sonar
- POSTGRES_PASSWORD=sonar
TZ:Asia/Shanghai
ports:
- '5432:5432'
volumes:
- './postgresql/data:/var/lib/postgresql/data'


sonarqube:
container_name: sonarqube
image: 'david/sonarqube'
restart: unless-stopped
networks:
- sonarqube-network
environment:
- SONARQUBE_JDBC_URL=jdbc:postgresql://postgres:5432/sonar
- SONARQUBE_JDBC_USERNAME=sonar
- SONARQUBE_DATABASE_NAME=sonar
- SONARQUBE_JDBC_PASSWORD=sonar
ports:
- '9008:9000'
volumes:
- './sonarqube/conf:/opt/sonarqube/conf'
- './sonarqube/logs:/opt/sonarqube/logs'
- './sonarqube/extensions:/opt/sonarqube/extensions'
- './sonarqube/data:/opt/sonarqube/data'
depends_on:
- postgres

networks:
sonarqube-network:
driver: bridge

 

 

 

#运行compose
docker-compose up -d sonarqube
#查看日志确认无异常
docker logs -f sonarqube
#此时存在异常,排查后发现是数据库无法连接,导致web服务无法启动
#连接postgres数据库,发现提示密码错误,在compose中创建容器时就创建了账号密码,不知道为什么创建成功密码却不对,怀疑是初始账户存在默认密码,覆盖了创建的密码
#运行compose
docker-compose up -d postgres
#进入postgres容器,修改密码
docker exec -it postgres bash
#连接数据库
psql sonar
#修改密码
\password sonar

 

修改密码后再次删除之前的sonarqube容器重新compose启动,这次启动成功,网页正常打开

 

打开后默认账号密码是admin

第一次进入后修改密码,

根据教程配置相关参数,打通gitlab与sonarqube。

SonarQube与GitLab集成_椰汁菠萝的博客-CSDN博客_gitlab sonarqube

根据教程配置jenkins和sonarqube相关参数

https://kebingzao.com/2020/12/21/sonarqube-jenkins/

标签:compose,postgresql,postgres,sonarqube,文档,sonar,docker
From: https://www.cnblogs.com/helloshikui/p/17225453.html

相关文章