【问题标题】:Running Sonar Scanner in gitlab-ci在 gitlab-ci 中运行声纳扫描仪
【发布时间】:2020-08-30 06:59:34
【问题描述】:

我正在尝试为 python 应用程序构建一个运行 sonarqube 的管道。这是我第一次使用 gitlab-ci,所以我希望能得到一些指导。我知道要运行 sonarqube,您必须以某种方式在 yml 中调用声纳扫描仪。那就是我卡住的地方。如何在我的 docker 中设置/安装声纳扫描仪?我正在运行一个带有 python 图像的 docker。任何帮助将不胜感激。老实说,我不明白本地下载声纳扫描仪包的意义。 git 管道是否默认查看本地计算机上安装的包?

【问题讨论】:

    标签: python docker sonarqube gitlab-ci sonarqube-scan


    【解决方案1】:

    有两种解决方案:

    1. 您可以使用 SonarScanner Documentaion 在本地机器上安装 sonar-scanner 由于 sonar-scanner 需要在机器上安装 Java-11,您必须使用
    2. 安装 openjdk-11-jdk-headless
       sudo apt install openjdk-11-jdk-headless
    

    并使用文档中提供的步骤在您的机器上安装声纳扫描仪。 2. 您可以使用安装了 sonar-scanner 的 docker 镜像作为基础镜像,并使用该镜像构建您自己的带有所需 python 版本和所需软件的 docker 镜像。

    例如,您可以使用以下 docker 镜像作为您的 docker 镜像的参考镜像

       bluelabseu/sonar-scanner:4.3.0-7879
    

    使用声纳扫描仪图像为 python 项目创建图像的示例 docker 文件。

        FROM bluelabseu/sonar-scanner:4.3.0-7248`
    
        RUN apt-get update && apt-get install python2.7 -y && apt-get install python3.6 -y
    

    一旦你有一个 docker 文件,使用它来创建一个 docker 镜像并将它上传到你的项目存储库的 gitlab-container 注册表。

    在 python 项目中使用声纳扫描仪:

    1. 如果您想将代码覆盖率和代码质量发布到 sonarqube,您必须生成可由任何构建工具生成的测试覆盖率文件。

    2. 在 sonarqube 管理中添加 python 配置文件的覆盖率报告路径。可以这样设置:

      一个。使用管理员用户登录 sonarqube 服务器。

      b.转到管理-> 配置-> python -> 测试和覆盖率-> 覆盖率报告的路径。将coverage-reports/*coverage-*.xml 设置为sonar.python.coverage.reportPaths 键的覆盖路径。

    3. 例如使用诗歌构建工具生成测试覆盖率报告 poetry run py.test tests/ --cov=<PROJECT_PACKAGE_NAME>/ --cov-report xml:coverage-reports/coverage-result.xml

    4. 在您的

    5. 上执行以下命令
        sonar-scanner -Dsonar.coverage.exclusions=tests/** -Dsonar.python.coverage.reportPaths=coverage-reports/coverage-reports.xml  -Dsonar.projectKey=<PROJECT_NAME> -Dsonar.projectName=<PROJECT_NAME> -Dsonar.projectVersion=<<PROJECT_VERSION>  -Dsonar.sources=<PROJECT_PACKAGE_NAME> -Dsonar.tests=tests/  -Dsonar.sourceEncoding=UTF-8 -Dsonar.host.url=<SONAR_HOST_SERVER_URL> -Dsonar.login=<SONAR_AUTH_TOKEN>
    

    注意:最好不要在 sonar-scanner.properties 文件中设置任何配置,并在命令本身中使用 -D 参数提供配置

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-09
      • 2017-07-08
      • 2017-08-19
      • 2021-05-02
      • 2017-04-27
      • 1970-01-01
      • 2018-09-27
      • 2017-10-26
      相关资源
      最近更新 更多