SonarQube 使用

环境说明

  • CentOS 7.3
  • 不建议在 Windows 上使用

SonarQube 基本概念

  1. C/C++
  2. JavaScript
  3. C#
  4. Java
  5. COBOL
  6. TypeScript
  7. PL/SQL
  8. PL/I
  9. PHP
  10. ABAP
  11. T-SQL
  12. VB.NET
  13. VB6
  14. Python
  15. RPG
  16. Flex
  17. Objective-C
  18. Swift
  19. WebHTML and JSF/JSP
  20. XML

Docker 的 SonarQube 安装和基本配置

简单 docker 方式

  • 一个命令(没有挂载):docker run -d --name sonarqube -p 19000:9000 -p 19092:9092 -e "TZ=Asia/Shanghai" -e SONARQUBE_JDBC_USERNAME=sonar -e SONARQUBE_JDBC_PASSWORD=sonar -e SONARQUBE_JDBC_URL=jdbc:postgresql://112.74.49.55:5433/sonar sonarqube
  • 一个命令(有挂载):docker run -d --name sonarqube -p 19000:9000 -p 19092:9092 -v /data/docker/ci/sonarqube/conf:/opt/sonarqube/conf -v /data/docker/ci/sonarqube/data:/opt/sonarqube/data -v /data/docker/ci/sonarqube/extension:/opt/sonarqube/extensions -v /data/docker/ci/sonarqube/bundled-plugins:/opt/sonarqube/lib/bundled-plugins -e "TZ=Asia/Shanghai" -e SONARQUBE_JDBC_USERNAME=sonar -e SONARQUBE_JDBC_PASSWORD=sonar -e SONARQUBE_JDBC_URL=jdbc:postgresql://120.79.2.92:5433/sonar sonarqube

docker-compose 方式

  1. postgresql:
  2. restart: always
  3. image: sameersbn/postgresql:9.6-2
  4. ports:
  5. - "5433:5432"
  6. environment:
  7. - DB_USER=sonar
  8. - DB_PASS=sonar
  9. - DB_NAME=sonar
  10. - DB_EXTENSION=pg_trgm
  11. volumes:
  12. - /data/docker/ci/postgresql:/var/lib/postgresql
  13. sonarqube:
  14. restart: always
  15. image: sonarqube
  16. ports:
  17. - "19000:9000"
  18. - "19092:9092"
  19. links:
  20. - postgresql:postgresql
  21. depends_on:
  22. - postgresql
  23. environment:
  24. - SONARQUBE_JDBC_URL=jdbc:postgresql://postgresql:5433/sonar
  25. - SONARQUBE_JDBC_USERNAME=sonar
  26. - SONARQUBE_JDBC_PASSWORD=sonar
  27. volumes:
  28. - /data/docker/ci/sonarqube/conf:/opt/sonarqube/conf
  29. - /data/docker/ci/sonarqube/data:/opt/sonarqube/data
  30. - /data/docker/ci/sonarqube/extension:/opt/sonarqube/extensions
  31. - /data/docker/ci/sonarqube/bundled-plugins:/opt/sonarqube/lib/bundled-plugins
  • 一整套完整服务:
  1. version: '3'
  2. networks:
  3. prodnetwork:
  4. driver: bridge
  5. services:
  6. nexus:
  7. image: sonatype/nexus3
  8. ports:
  9. - 8081:8081
  10. networks:
  11. - prodnetwork
  12. jenkins:
  13. image: jenkins
  14. ports:
  15. - 8080:8080
  16. networks:
  17. - prodnetwork
  18. volumes:
  19. - /var/run/docker.sock:/var/run/docker.sock
  20. - /usr/local/bin/docker:/usr/bin/docker
  21. - /opt/jenkins/:/var/lib/jenkins/
  22. links:
  23. - nexus
  24. - gitlab
  25. - sonar
  26. environment:
  27. - NEXUS_PORT=8081
  28. - SONAR_PORT=9000
  29. - SONAR_DB_PORT=5432
  30. sonar:
  31. image: sonarqube
  32. ports:
  33. - 9000:9000
  34. networks:
  35. - prodnetwork
  36. links:
  37. - sonardb
  38. environment:
  39. - SONARQUBE_JDBC_URL=jdbc:postgresql://sonardb:5432/sonar
  40. - SONARQUBE_JDBC_USERNAME=sonar
  41. - SONARQUBE_JDBC_PASSWORD=sonar
  42. sonardb:
  43. networks:
  44. - prodnetwork
  45. image: postgres
  46. ports:
  47. - 5432:5432
  48. environment:
  49. - POSTGRES_DB=sonar
  50. - POSTGRES_USER=sonar
  51. - POSTGRES_PASSWORD=sonar
  52. volumes:
  53. - /opt/postgres/data:/var/lib/postgresql/data
  54. gitlab:
  55. image: gitlab/gitlab-ce
  56. restart: always
  57. networks:
  58. - prodnetwork
  59. environment:
  60. GITLAB_OMNIBUS_CONFIG: |
  61. # external_url 'https://gitlab.example.com'
  62. # Add any other gitlab.rb configuration here, each on its own line
  63. ports:
  64. - 80:80
  65. - 443:443
  66. - 2222:22
  67. volumes:
  68. - /opt/gitlab/config:/etc/gitlab
  69. - /opt/gitlab/logs:/var/log/gitlab
  70. - /opt/gitlab/data:/var/opt/gitlab

SonarQube 插件

这里我安装的插件:

chinese 中文支持
php php代码支持
Android Android支持
安装成功后,重启 sonarqube 服务,再次访问 http://ip:9000/ 即可看到中文界面

与 Jenkins 集成

用 admin 用户登陆 sonarQube,【配置】–>【权限】 –>【用户】
输入admin,得到token,复制此token
jenkins安装sonar相关插件
Jenkins 点击【系统管理】 –> 【系统设置]】 配置 Sonar,设置完保存

资料