我想将 sonarqube 添加到 CI 中,以便我和我的团队可以查看我们的代码质量是否足够好。
我在 gitlab 注册表中设置了一个 Sonarqube 图像,并尝试将其集成到当前的构建脚本中。
build:
stage: build
script: gradle --build-cache assemble --debug
cache:
key: "$CI_COMMIT_REF_NAME"
policy: push
paths:
- build
- .gradle
dependencies: []
src_check:
services:
- registry.gitlab.com/zerra/zerra/sonarqube:latest
stage: src_check
script:
- echo scanning code quality...
- gradle sonarqube
我收到一个错误
SonarQube server [http://localhost:9000] can not be reached
虽然我希望将注册表添加到服务会运行服务器。我该怎么做才能让它工作? (最好不必托管本地 gitlab 版本)
最佳答案
我不熟悉您在那里提供的 GitLab CI 服务定义的语法/行为,但假设容器正常启动,我认为您必须在 sonarqube:9000
下访问它而不是 localhost:9000
.
SonarQube 容器链接到运行构建的容器,您可以通过与容器名称相同的主机名访问它。
至少这是我在这里解释手册的方式:
https://docs.gitlab.com/ee/ci/docker/using_docker_images.html#how-services-are-linked-to-the-job
关于java - Sonarqube 集成到 gitlab.com 上的私有(private)仓库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54712812/