GitLab Runner容器中执行SonarQube分析时出现「Not authorized」错误的排查求助
大家好,我最近在折腾GitLab Runner(Docker容器部署)执行SonarQube(同样Docker部署)代码分析时,一直碰到权限错误,折腾了好半天没找到根源,想请各位帮忙排查下。
核心错误信息
最关键的错误提示如下:
Caused by: Not authorized. Please check the properties sonar.login and sonar.password.
完整的堆栈跟踪如下:
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'GlobalServerSettings' defined in org.sonar.scanner.bootstrap.GlobalServerSettingsProvider: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.sonar.scanner.bootstrap.GlobalServerSettings]: Factory method 'provide' threw exception; nested exception is Not authorized. Please check the properties sonar.login and sonar.password. at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:658) at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:638) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1352) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1195) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1391) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1311) at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:887) at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791) ... 70 more Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.sonar.scanner.bootstrap.GlobalServerSettings]: Factory method 'provide' threw exception; nested exception is Not authorized. Please check the properties sonar.login and sonar.password. at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185) at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:653) ... 84 more Caused by: Not authorized. Please check the properties sonar.login and sonar.password. Cleaning up project directory and file based variables 00:01 ERROR: Job failed: exit code 1
我的配置情况
- 环境:GitLab Runner和SonarQube都运行在独立的Docker容器中
.gitlab-ci.yml配置:
sonarqube-check: tags: - my-api image: name: sonarsource/sonar-scanner-cli:5.0 entrypoint: [""] variables: SONAR_USER_HOME: "${CI_PROJECT_DIR}/.sonar" GIT_DEPTH: "0" SONAR_TOKEN: "$SONARQUBE_TOKEN" cache: key: "${CI_JOB_NAME}" paths: - .sonar/cache script: - sonar-scanner -X rules: - if: $CI_COMMIT_BRANCH == 'main'
sonar-project.properties配置:
sonar.projectKey=my-api sonar.qualitygate.wait=true
我已经在GitLab CI/CD变量里配置了SonarQube的主机URL和令牌(SONARQUBE_TOKEN),但还是报这个错误。
想请教的问题
有没有大佬能帮我分析下,这个「Not authorized」错误可能是哪些原因导致的?有没有具体的排查或解决步骤?
备注:内容来源于stack exchange,提问作者Sri
相关产品推荐
相关产品推荐

