SonarQube是一个开源的代码质量管理系统,可以将工程中代码问题,按预设的规则,输出代码质量报告。
本文记录在Mac上使用Docker Compose搭建SonarQube的过程,方便后来人。
在Mac上搭建SonarQube,以前一般是下载安装包安装的。除了SonarQube,还要手动安装数据库,因为开发机上依赖库不同版本等原因,通常是需要折腾好一阵的。
本文使用Docker,相当方便,无痛安装,值得拥有。
docker-compose.yml Docker的基本知识请参考前文「Docker:基本知识 」。
在指定目录下新建docker-compose.yml
文件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 version: "3" services: sonarqube: image: sonarqube ports: - "9000:9000" networks: - sonarnet environment: - SONARQUBE_JDBC_URL=jdbc:postgresql://db:5432/sonar - "ES_JAVA_OPTS=-Xms8g -Xmx8g" - sonar.jdbc.username=sonar - sonar.jdbc.password=sonar volumes: - '${LocalPath}/conf:/opt/sonarqube/conf' - '${LocalPath}/data:/opt/sonarqube/data' - '${LocalPath}/ext:/opt/sonarqube/extensions' - '${LocalPath}/plugin:/opt/sonarqube/extensions/plugins' db: image: postgres networks: - sonarnet environment: - POSTGRES_USER=sonar - POSTGRES_PASSWORD=sonar volumes: - '${LocalPath}/postgresql:/var/lib/postgresql' - '${LocalPath}/postgresqldata:/var/lib/postgresql/data' networks: sonarnet: driver: bridge volumes: sonarqube_conf: sonarqube_data: sonarqube_extensions: sonarqube_bundled-plugins: postgresql: postgresql_data:
需要说明的是,配置sonarqube的容器,环境变量需要配置上postgres相关的参数。
同时在同级目录下新建.env
文件:
1 LocalPath=/Users/ryan/DevEnv/SonarQube/volumes
Docker的宿主机要求 因为SonarQube内置了Elasticsearch,es对内存跟文件句柄有一定要求,如果不修改配置,启动容器的时候是可能会失败的。搜索了官网后,查到了相关处理方案:
1 2 3 4 5 6 7 * macOS with Docker for Mac The vm.max_map_count setting must be set within the xhyve virtual machine: 1. From the command line, run: screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty 2. Press enter and use`sysctl` to configure vm.max_map_count: sysctl -w vm.max_map_count=262144 3. To exit the screen session, type Ctrl a d.
启动服务 在docker-compose.yml目录下,执行docker-compose up
即可。如果希望后台执行,加上-d参数。浏览器访问http://localhost:9000 即可(端口号与yml配置一致)。
Done!
Comments