最近Jenkinsの最新バージョンをインストールしましたSonarQube 6.0
(別のサーバーで実行中)およびJenkinsジョブがソナースキャナーの結果をSonarQubeサーバー、私は次のエラーを受け取ります:
'ERROR: Error during Sonar runner execution
org.sonar.runner.impl.RunnerException: Unable to execute Sonar
at org.sonar.runner.impl.BatchLauncher$1.delegateExecution(BatchLauncher.Java:91)
at org.sonar.runner.impl.BatchLauncher$1.run(BatchLauncher.Java:75)
at Java.security.AccessController.doPrivileged(Native Method)
at org.sonar.runner.impl.BatchLauncher.doExecute(BatchLauncher.Java:69)
at org.sonar.runner.impl.BatchLauncher.execute(BatchLauncher.Java:50)
at org.sonar.runner.api.EmbeddedRunner.doExecute(EmbeddedRunner.Java:102)
at org.sonar.runner.api.Runner.execute(Runner.Java:100)
at org.sonar.runner.Main.executeTask(Main.Java:70)
at org.sonar.runner.Main.execute(Main.Java:59)
at org.sonar.runner.Main.main(Main.Java:53)
Caused by: org.sonarqube.ws.client.HttpException: Error 413 on http://****`
原因は何でしょうか? ソナープロジェクトプロパティのエラー?
私自身の質問に答えます。 sonar.propertiesファイルで次のプロパティを設定すると、エラーになることがわかりました。
#sonar.web.Host=0.0.0.0
コメントを外してアドレスに設定すると、そのアドレスを持つクライアントのみがソナーキューブにアクセスできます。
私のsonarqubeサーバーがnginxプロキシの背後にあるのと同じエラーが発生しました。
413
== Request entity too large
@ jeroen-heierが言ったように。
私はこのように私のnginx設定に変更を適用しました
server {
...
client_max_body_size 20M;
....
}
要求を20メガバイトにできるようにして、それを修正しました。
Dockerでソナーを実行する場合、デフォルトのソナー画像にはnginxサーバーが含まれていないため、コンテナーでは何もできません
私はそれをk8sで実行しました。ソナーサービスの前にイングレスがあるので、イングレスとサービスを構成する必要があります
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: sonarqube
namespace: default
annotations:
ingress.kubernetes.io/proxy-body-size: "20M"
spec:
rules:
...
これをヘルムチャートで取得するには、次を追加します。
ingress:
enabled: true
annotations:
ingress.kubernetes.io/proxy-body-size: "20M"
nginx-ingress
を使用している場合は、nginx.ingress.kubernetes.io/proxy-body-size: "20M"
をannotations:
に追加します