首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Jenkins在SonarScanner中读取超时

使用Jenkins在SonarScanner中读取超时
EN

Stack Overflow用户
提问于 2019-09-09 15:45:59
回答 1查看 698关注 0票数 0

在执行与Jenkins集成的SonarScanner分析时,在控制台输出中会提示显示以下消息:

代码语言:javascript
复制
INFO: EXECUTION FAILURE
INFO: ------------------------------------------------------------------------
INFO: Total time: 3:33.658s
INFO: Final Memory: 5M/24M
INFO: ------------------------------------------------------------------------
ERROR: Error during SonarQube Scanner execution
ERROR: Unable to load component class org.sonar.scanner.scan.ProjectConfiguration
ERROR: Caused by: Unable to load component class org.sonar.scanner.scan.ProjectServerSettings
ERROR: Caused by: Fail to request http://sonarqube:9000/sonarqube/api/settings/values.protobuf?component=AplicacaoTeste
ERROR: Caused by: timeout
ERROR: Caused by: Read timed out

我在JenkinsSonarQube上都用Docker

来自sonar.properties的自定义值:

代码语言:javascript
复制
sonar.jdbc.username=YYYY
sonar.jdbc.password=XXXX
sonar.jdbc.url=jdbc:postgresql://sonarqube_db:5432/YYYY
sonar.jdbc.maxActive=1000
sonar.jdbc.maxIdle=8
sonar.jdbc.minIdle=4
sonar.jdbc.maxWait=0
sonar.web.host=0.0.0.0
sonar.web.context=/sonarqube
sonar.web.port=9000

码头工人撰写文件:

代码语言:javascript
复制
version: "3.7"
services:
  jenkins:
    image: jenkins/jenkins:lts-jdk11
    container_name: jenkins-container
    restart: always
    labels:
      br.com.topfornecedores.descricao: "Jenkins CI/CD"
    networks:
      - software_qa
    volumes:
      - ./Jenkins/volumes/home:/var/jenkins_home
    expose:
      - 8080 
      - 50000
    ports:
      - 8088:8080 
      - 50055:50000
    depends_on:
      - sonarqube
  sonarqube_db:
    build: ./SonarQube_PostgreSQL
    container_name: sonarqube_db-container
    restart: always
    labels:
      br.com.topfornecedores.descricao: "Banco de dados do SonarQube"
    volumes:
      -  postgresql-volume:/var/lib/postgresql/data
    expose:
      - 5432
    ports:
      - 5432:5432
    networks:
      - software_qa 
    healthcheck:
      test: ["CMD", "pg_isready -U postgres"]
      interval: 30s
      timeout: 10s
      retries: 5
      start_period: 40s
  sonarqube:
    build: ./SonarQube
    container_name: sonarqube-container
    restart: always
    labels:
      br.com.topfornecedores.descricao: "SonarQube análises de qualidade de código e segurança"
    volumes:
      - "./SonarQube/volumes/conf:/opt/sonarqube/conf"
      - "./SonarQube/volumes/data:/opt/sonarqube/data"
      - "./SonarQube/volumes/logs:/opt/sonarqube/log"
    environment:
      - SONARQUBE_JDBC_URL=jdbc:postgresql://sonarqube_db:5432/sonardb
      - SONARQUBE_JDBC_USERNAME=sonarusuario
      - SONARQUBE_JDBC_PASSWORD=sonarusuariosenha
    expose:
      - 9000
    ports:
      - 9000:9000
      - 9002:9002
    depends_on:
      - sonarqube_db
    networks:
      - software_qa
networks:
  software_qa:
    driver: "bridge"
volumes:
    postgresql-volume:
      name: postgresql-volume

我可以在浏览器中访问URL:http://sonarqube:9000/sonarqube/api/settings/values.protobuf?component=AplicacaoTeste,这样就可以了。

版本

SonarQube: 7.9.1

SonarScanner Jenkins插件: 2.6.1

詹金斯: lts-jdk11 11

Docker Windows桌面:2

这个错误是为什么造成的?

EN

回答 1

Stack Overflow用户

发布于 2019-09-09 17:16:01

您的DB容器在docker-组合中是不同的,并且在URL中是不同的,这就是为什么您需要超时。

代码语言:javascript
复制
  sonarqube_db:
    build: ./SonarQube_PostgreSQL
    container_name: sonarqube_db-container

因为错误日志是

http://sonarqube:9000/sonarqube/api/settings/values.protobuf?component=AplicacaoTeste错误:由:超时值`引起

你需要更新

代码语言:javascript
复制
SONARQUBE_JDBC_URL=jdbc:postgresql://sonarqube_db:5432/sonardb

代码语言:javascript
复制
SONARQUBE_JDBC_URL=jdbc:postgresql://sonarqube_db-container:5432/sonardb

对于sonarqube,您将为容器指定一个名称,因此当您想要从其他容器访问时,应该使用sonarqube-container

代码语言:javascript
复制
  sonarqube:
    build: ./SonarQube
    container_name: sonarqube-container

喜欢

代码语言:javascript
复制
ERROR: Caused by: Fail to request http://sonarqube:9000/sonarqube/api/settings/values.protobuf?component=AplicacaoTeste

将此更改为

代码语言:javascript
复制
http://sonarqube-container:9000/sonarqube/api/settings/values.protobuf?component=AplicacaoTeste
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57857270

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档