postgres_sonarqube.yml
version: "3.3"
services:
db:
image: postgres
container_name: postgres
ports:
- "5432:5432"
environment:
- POSTGRES_USER=sonar
- POSTGRES_PASSWORD=sonar
adminer:
image: adminer
restart: always
ports:
- 8088:8080
sonarqube6.7:
image: jamesz2011/sonarqube6.7:latest
container_name: sonarqube
ports:
- "9001:9000"
- "9092:9092"
volumes:
- /etc/localtime:/etc/localtime:ro
- /var/jenkins_home:/root/sonar_pro
links:
- db
environment:
- SONARQUBE_JDBC_URL=jdbc:postgresql://db:5432/sonar
docker-compose -f postgres_sonarqube.yml up -d
- 使用docker-compose pull特别慢 可以单独拿出来pull
- mac本地docker /etc/localtime禁止share file /mac机器的时间路径与linux不一样
- 端口映射占用
- Docker 挂载数据卷的默认权限是可读写(rw),用户也可以通过 ro 标记指定为只读
- 为了和Jenkins集成 所以挂载Jenkins workspace 管理gitlab需要sonar的代码
- 更改了yml需要rm后up restart只重启不会从yml重建
sonar界面
port8088 sonar sonar连接数据库 adminer原phpmyadmin
Jenkins中会使用到的accesskey
配置sonar服务器/secret access
全局配置
这里需要解释下sonar.projectKey 和sonar.projectName, projectKey 是在sonar 平台上一个project 的内部唯一标志,projectName 是project 在sonar 平台上显示的名称,仅用来做显示名称,允许重复,sonar 平台通过projetKey来标记是否是同一个project,当一个git 项目需要针对不同分支进行sonar 分析时,靠的就是projectKey的差异去创建
配置Analysis properties
sonar.projectKey=org.codehaus.sonar:education
sonar.projectName=PHP php_education sonar test
sonar.projectVersion=1.0
#这里是php文件放的地方
sonar.sources=/var/jenkins_home/workspace/sonarphp/education
# Language
sonar.language=php
sonar.dynamicAnalysis=false
# Encoding of the source files
sonar.sourceEncoding=UTF-8
success
sonar dashboard
bugs
若项目一直pending:The way to resolve this error is to remove the blocking task: Global Administration > Projects > Background Tasks & delete the problem task.
post-build action: download dingtalk plugin
配置dingtalk
勾选
钉钉中可console台看日志输出