|
| 1 | + |
| 2 | + |
| 3 | +# SonarQube 使用 |
| 4 | + |
| 5 | +## 环境说明 |
| 6 | + |
| 7 | +- CentOS 7.3 |
| 8 | +- 不建议在 Windows 上使用 |
| 9 | + |
| 10 | +## SonarQube 基本概念 |
| 11 | + |
| 12 | +- 官网:<https://www.sonarqube.org/> |
| 13 | +- 官网下载:<https://www.sonarqube.org/downloads/> |
| 14 | +- Github 主页(主要是用 Java 开发):<https://github.com/SonarSource/sonarqube> |
| 15 | +- 当前(2018-02)最新 LTS 是:6.7.1,最新发布版本:7.0 |
| 16 | +- 主要支持的语言项目有: |
| 17 | + |
| 18 | +``` |
| 19 | +C/C++ |
| 20 | +JavaScript |
| 21 | +C# |
| 22 | +Java |
| 23 | +COBOL |
| 24 | +TypeScript |
| 25 | +PL/SQL |
| 26 | +PL/I |
| 27 | +PHP |
| 28 | +ABAP |
| 29 | +T-SQL |
| 30 | +VB.NET |
| 31 | +VB6 |
| 32 | +Python |
| 33 | +RPG |
| 34 | +Flex |
| 35 | +Objective-C |
| 36 | +Swift |
| 37 | +Web(HTML and JSF/JSP) |
| 38 | +XML |
| 39 | +``` |
| 40 | + |
| 41 | +## Docker 的 SonarQube 安装和基本配置 |
| 42 | + |
| 43 | +#### 简单 docker 方式 |
| 44 | + |
| 45 | + |
| 46 | +docker run -d --name sonarqube -p 9000:9000 -p 9092:9092 sonarqube |
| 47 | +之后在浏览器里打开http://localhost:9000/即可打开界面试用了,管理员用户名、密码为admin |
| 48 | + |
| 49 | + |
| 50 | +docker run --name mysql-sonar -e MYSQL_ROOT_PASSWORD=mysql -e MYSQL_DATABASE=sonar -e MYSQL_USER=sonar -e MYSQL_PASSWORD=sonar -v /path/to/local/mysql/dir:/var/lib/mysql -p 33066:3306 -d mysql:latest |
| 51 | + |
| 52 | +docker run -d --name sonarqube -p 9000:9000 -p 9092:9092 --link=mysql-sonar:mysql -e SONARQUBE_JDBC_USERNAME=sonar -e SONARQUBE_JDBC_PASSWORD=sonar -e SONARQUBE_JDBC_URL="jdbc:mysql://mysql:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false" sonarqube |
| 53 | + |
| 54 | + |
| 55 | + |
| 56 | +docker run -d --name sonarqube \ |
| 57 | +-p 9000:9000 -p 9092:9092 \ |
| 58 | +-e SONARQUBE_JDBC_USERNAME=sonar \ |
| 59 | +-e SONARQUBE_JDBC_PASSWORD=sonar \ |
| 60 | +-e SONARQUBE_JDBC_URL=jdbc:postgresql://localhost/sonar \ |
| 61 | +sonarqube:5.1 |
| 62 | + |
| 63 | + |
| 64 | +docker run -d --name sonarqube \ |
| 65 | + -p 9000:9000 -p 9092:9092 \ |
| 66 | + -e SONARQUBE_JDBC_USERNAME=sonar \ |
| 67 | + -e SONARQUBE_JDBC_PASSWORD=sonar \ |
| 68 | + -e SONARQUBE_JDBC_URL=jdbc:postgresql://localhost/sonar \ |
| 69 | + sonarqube |
| 70 | + |
| 71 | + |
| 72 | +docker run -d --name sonarqube -e "TZ=America/Chicago" -p 9000:9000 -p 9092:9092 newtmitch/sonar-server |
| 73 | + |
| 74 | +#### docker-compose 方式 |
| 75 | + |
| 76 | +- 官网文档:<https://github.com/SonarSource/docker-sonarqube/blob/master/recipes.md> |
| 77 | + |
| 78 | + |
| 79 | + |
| 80 | +``` |
| 81 | +postgresql: |
| 82 | + restart: always |
| 83 | + image: sameersbn/postgresql:9.4-18 |
| 84 | + environment: |
| 85 | + - DB_USER=sonar |
| 86 | + - DB_PASS=[hidden] |
| 87 | + - DB_NAME=sonar |
| 88 | + - DB_EXTENSION=pg_trgm |
| 89 | + volumes: |
| 90 | + - /srv/sonarqube/postgresql:/var/lib/postgresql |
| 91 | +sonarqube: |
| 92 | + restart: always |
| 93 | + image: sonarqube |
| 94 | + links: |
| 95 | + - postgresql:postgresql |
| 96 | + ports: |
| 97 | + - "10081:9000" |
| 98 | + environment: |
| 99 | + - SONARQUBE_JDBC_URL=jdbc:postgresql://postgresql:5432/sonar |
| 100 | + - SONARQUBE_JDBC_PASSWORD=[hidden] |
| 101 | + volumes: |
| 102 | + - /srv/sonarqube/extensions:/opt/sonarqube/extensions |
| 103 | +``` |
| 104 | + |
| 105 | + |
| 106 | +- 一整套完整服务: |
| 107 | + |
| 108 | +``` |
| 109 | +version: '2' |
| 110 | +
|
| 111 | +networks: |
| 112 | + prodnetwork: |
| 113 | + driver: bridge |
| 114 | +
|
| 115 | +services: |
| 116 | + nexus: |
| 117 | + image: sonatype/nexus3 |
| 118 | + ports: |
| 119 | + - 8081:8081 |
| 120 | + networks: |
| 121 | + - prodnetwork |
| 122 | +
|
| 123 | + jenkins: |
| 124 | + image: jenkins |
| 125 | + ports: |
| 126 | + - 8080:8080 |
| 127 | + networks: |
| 128 | + - prodnetwork |
| 129 | + volumes: |
| 130 | + - /var/run/docker.sock:/var/run/docker.sock |
| 131 | + - /usr/local/bin/docker:/usr/bin/docker |
| 132 | + - /opt/jenkins/:/var/lib/jenkins/ |
| 133 | + links: |
| 134 | + - nexus |
| 135 | + - gitlab |
| 136 | + - sonar |
| 137 | + environment: |
| 138 | + - NEXUS_PORT=8081 |
| 139 | + - SONAR_PORT=9000 |
| 140 | + - SONAR_DB_PORT=5432 |
| 141 | +
|
| 142 | + sonar: |
| 143 | + image: sonarqube |
| 144 | + ports: |
| 145 | + - 9000:9000 |
| 146 | + networks: |
| 147 | + - prodnetwork |
| 148 | + links: |
| 149 | + - sonardb |
| 150 | + environment: |
| 151 | + - SONARQUBE_JDBC_URL=jdbc:postgresql://sonardb:5432/sonar |
| 152 | + - SONARQUBE_JDBC_USERNAME=sonar |
| 153 | + - SONARQUBE_JDBC_PASSWORD=sonar |
| 154 | + sonardb: |
| 155 | + networks: |
| 156 | + - prodnetwork |
| 157 | + image: postgres |
| 158 | + ports: |
| 159 | + - 5432:5432 |
| 160 | + environment: |
| 161 | + - POSTGRES_DB=sonar |
| 162 | + - POSTGRES_USER=sonar |
| 163 | + - POSTGRES_PASSWORD=sonar |
| 164 | + volumes: |
| 165 | + - /opt/postgres/data:/var/lib/postgresql/data |
| 166 | +
|
| 167 | + gitlab: |
| 168 | + image: gitlab/gitlab-ce |
| 169 | + restart: always |
| 170 | + networks: |
| 171 | + - prodnetwork |
| 172 | + environment: |
| 173 | + GITLAB_OMNIBUS_CONFIG: | |
| 174 | + # external_url 'https://gitlab.example.com' |
| 175 | + # Add any other gitlab.rb configuration here, each on its own line |
| 176 | + ports: |
| 177 | + - 80:80 |
| 178 | + - 443:443 |
| 179 | + - 2222:22 |
| 180 | + volumes: |
| 181 | + - /opt/gitlab/config:/etc/gitlab |
| 182 | + - /opt/gitlab/logs:/var/log/gitlab |
| 183 | + - /opt/gitlab/data:/var/opt/gitlab |
| 184 | +``` |
| 185 | + |
| 186 | + |
| 187 | + |
| 188 | +## SonarQube 插件 |
| 189 | + |
| 190 | +这里我安装的插件: |
| 191 | + |
| 192 | +chinese 中文支持 |
| 193 | +php php代码支持 |
| 194 | +Android Android支持 |
| 195 | +安装成功后,重启 sonarqube 服务,再次访问 http://ip:9000/ 即可看到中文界面 |
| 196 | + |
| 197 | + |
| 198 | +## 与 Jenkins 集成 |
| 199 | + |
| 200 | +用 admin 用户登陆 sonarQube,【配置】–>【权限】 –>【用户】 |
| 201 | +输入admin,得到token,复制此token |
| 202 | +jenkins安装sonar相关插件 |
| 203 | +Jenkins 点击【系统管理】 –> 【系统设置]】 配置 Sonar,设置完保存 |
| 204 | + |
| 205 | + |
| 206 | +## 资料 |
| 207 | + |
| 208 | +- <http://witmax.cn/sonarqube-docker.html> |
| 209 | +- <https://www.chen-hao.com.cn/posts/2754/> |
| 210 | +- <> |
| 211 | +- <> |
| 212 | +- <> |
| 213 | + |
| 214 | + |
| 215 | + |
| 216 | + |
| 217 | + |
| 218 | + |
| 219 | + |
| 220 | + |
| 221 | + |
| 222 | + |
| 223 | + |
| 224 | + |
| 225 | + |
| 226 | + |
| 227 | + |
| 228 | + |
| 229 | + |
| 230 | + |
| 231 | + |
| 232 | + |
| 233 | + |
| 234 | + |
| 235 | + |
| 236 | + |
0 commit comments