赞
踩
[root@aa ~]# sysctl vm.max_map_count
vm.max_map_count = 524288
[root@aa ~]# sysctl fs.file-max
fs.file-max = 1608722
[root@aa ~]# ulimit -n
131072
[root@aa ~]# ulimit -u
63407
vm.max_map_count 大于或等于524288
fs.file-max 大于或等于131072
运行SonarQube的用户可以打开至少131072个文件描述符
运行SonarQube的用户可以打开至少8192个线程
设置方法为:
sysctl -w vm.max_map_count=524288
sysctl -w fs.file-max=131072
ulimit -n 131072
ulimit -u 8192
version: '3' services: postgres: image: postgres restart: always container_name: sonarqube_postgres ports: - 5432:5432 volumes: - ./postgresql/:/var/lib/postgresql - ./datasql/:/var/lib/postgresql/data environment: TZ: Asia/Shanghai POSTGRES_USER: sonar POSTGRES_PASSWORD: sonar POSTGRES_DB: sonar networks: - sonar-network sonar: image: sonarqube restart: always container_name: sonarqube depends_on: - postgres volumes: - ./extensions:/opt/sonarqube/extensions - ./logs:/opt/sonarqube/logs - ./data:/opt/sonarqube/data - ./conf:/opt/sonarqube/conf ports: - 9000:9000 environment: SONARQUBE_JDBC_USERNAME: sonar SONARQUBE_JDBC_PASSWORD: sonar SONARQUBE_JDBC_URL: jdbc:postgresql://postgres:5432/sonar networks: - sonar-network networks: sonar-network: driver: bridge
原因:jdk8后面运行会报错, 解决办法:更新服务器上的jdk为最新版本,参考链接:https://stackoverflow.com/questions/37686144/java-lang-unsupportedclassversionerror-org-sonar-batch-bootstrapper-environment
jdk8 执行时候会报错:java.lang.UnsupportedClassVersionError: org/sonar/batch/bootstrapper/EnvironmentInformation has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
查看已安装的jdk: yum list installed | grep java
卸载所有的jdk: yum -y remove java-1.7.0-openjdk*
查看当前所有的jdk版本: yum -y list java*
下载jdk11: yum install -y java-11-openjdk.x86_64
验证: java -version
Sonar Quality Gates Plugin
SonarQube Scanner for Jenkins
系统配置中添加 SonarQube servers 的配置
参考链接:https://www.cnblogs.com/cjsblog/p/10740840.html
(2)配置密钥:复制id.rsa文件里面的内容到jenkins上即可,路径一般在:C:\Users\tfjiao.ssh
sonar.projectKey=demo001
sonar.projectName=demo001
sonar.projectVersion=1.0
sonar.language=java
sonar.sourceEncoding=UTF-8
sonar.sources=$WORKSPACE
sonar.java.binaries=$WORKSPACE
sonar.projectKey=demo001 # 唯一性,不能跟其他项目重名
sonar.projectName=demo001 # sonarqube界面显示的项目名
sonar.projectVersion=1.0 # 项目版本
sonar.language=java
sonar.sourceEncoding=UTF-8
sonar.sources=$WORKSPACE # 需要检测的目录
sonar.java.binaries=$WORKSPACE
不常用的配置:
sonar.projectKey=demo001 #sonar平台中相对应项目的key
sonar.projectName=demo001 #sonar平台中相对应项目的名字
sonar.sources=. #sonar检测的源文件目录,‘.’表示当前根目录下的所有文件目录;包含主要源文件的目录的逗号分隔路径
sonar.exclusions=**/*_test.go,**/vendor/** #检测中排除的源文件(排除的源文件不参与检测,一般排除单元测试文件、配置文件等)
sonar.tests=. #sonar检测的测试文件目录,‘.’表示当前根目录下的所有文件目录;包含测试源文件的目录的逗号分隔路径。从构建系统中读取Maven,Gradle,MSBuild项目。否则默认为空。
sonar.test.inclusions=**/**_test.go #检测中的测试源文件(指定单元测试文件)
sonar.test.exclusions=**/vendor/** #检测中排除的测试源文件(排除的源文件不参与检测)
排查发现其他项目的任务都失败了,根因是jdk调用时候报错了
解决办法:1、删掉了全局配置里面的jdk,因为我没有配用户名,jenkins默认优先调用jenkins配置的jdk,干掉后,就会调用服务器我配置的jdk11,问题解决
ERROR: Couldn’t find any revision to build. Verify the repository and branch configuration for this job.
根因:配置git任务时分支名多了个空格
报错:initdb: error: directory “/var/lib/postgresql/data” exists but is not empty
If you want to create a new database system, either remove or empty
the directory “/var/lib/postgresql/data” or run initdb
with an argument other than “/var/lib/postgresql/data”.
The files belonging to this database system will be owned by user “postgres”.
This user must also own the server process.
解决办法:去掉pg数据库容器的数据卷
2021.12.07 12:53:22 INFO web[][o.sonar.db.Database] Create JDBC data source for jdbc:postgresql://192.168.10.120:5432/sonar
2021.12.07 12:53:32 ERROR web[][o.s.s.p.PlatformImpl] Web server startup failed
服务启动失败
解决办法:更新ip,忘了改ip了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。