一、什么是Sonar?
Sonar是一个用于代码质量管理的开源平台,用于管理代码的质量,通过插件形式可以支持二十几种语言的代码质量检测,通过多个维度的检查了快速定位代码中潜在的或者明显的错误。
二、使用Docker搭建Sonar平台
(1)搜索搭建Sonar必要的Docker镜像
Sonar需要数据库的支持,这里我们采用的是Postgres数据库,所以我们需要下载Sonar、Postgres的Docker镜像
image
(2)使用Docker搭建Postgres数据库
- 首先我们需要给数据库分配一个磁盘空间,这里我们创建一个虚拟磁盘用作数据库存储的空间
image
- 使用Postgres Docker镜像一句话搭建Postgres数据库
docker run --name postgresql -p 5432:5432 -e POSTGRES_USER=sonar -e POSTGRES_PASSWORD=sonar -e POSTGRE_DB=sonar -v postgres_volume:/var/lib/postgresql/data -d postgres
- 容器启动完成之后使用IDEA数据库插件检测是否搭建完成
image
(3)使用Docker搭建Sonar,并且关联Postgres数据库
- 我们可以把一些Sonar常用的磁盘目录挂载出来,例如Sonar的/opt/sonarqube/data和/opt/sonarqube/extensions,所以我们这里还是一样,新建2个虚拟磁盘
image
- 使用Docker镜像一句话关联Postgres数据库以及挂载虚拟磁盘
docker run --name sonarqube --link postgresql -e SONARQUBE_JDBC_URL=jdbc:postgresql://postgresql:5432/sonar -p 9001:9000 -d -v sonar_data:/opt/sonarqube/data -v sonar_extensions:/opt/sonarqube/extensions sonarqube
- 配置nginx,启动域名访问
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name docker.xyz.cn;
location / {
proxy_pass http://192.168.27.180:9000;
}
}
server {
listen 80;
server_name filebrowser.xyz.cn;
location / {
proxy_pass http://192.168.27.180:3000;
}
}
server {
listen 80;
server_name sonar.xyz.cn;
location / {
proxy_pass http://192.168.27.180:9001;
}
}
}
- 待容器启动完成之后,即可通过sonar.xyz.cn访问Sonar
image
三、Sonar的汉化
很简单,目前版本的Sonar已经有对应插件支持,配置-应用市场直接搜索Chinese Pack即可
作者:RmondJone
链接:https://www.jianshu.com/p/4966af7412d4
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。