You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

托管GitLab CI/CD Runner的Windows服务器是否需安装Docker?

GitLab CI/CD添加代码覆盖率与安全扫描的Docker使用说明

核心逻辑

GitLab官方的安全扫描(SAST、Dependency Scanning等)和部分覆盖率工具,依赖预构建的Docker镜像——这些镜像已经打包好了适配.NET的扫描工具(比如dotnet-sast、SonarScanner),你不需要自己从零配置容器内容,只需要确保GitLab Runner能正常调用这些镜像。

具体操作步骤

1. 先在Windows服务器上安装Docker

这是基础前提:你的GitLab Runner所在的Windows服务器必须装好Docker Desktop(Windows版),并确保Docker服务处于运行状态,因为Runner需要拉取官方的扫描镜像来执行任务。

2. 配置GitLab Runner的执行器(关键)

如果你的Runner之前用的是shell执行器(直接在Windows服务器本地跑命令),需要改成docker或docker-windows执行器,或者新增一个使用Docker执行器的Runner:

  • 配置完成后,Runner会自动从GitLab的容器仓库拉取官方提供的扫描镜像,完全不需要你手动下载或配置镜像内部的脚本、工具。

3. 在.gitlab-ci.yml中添加对应任务

代码覆盖率(适配.NET 6)

不需要额外Docker镜像,直接在现有测试任务里生成覆盖率报告,让GitLab自动解析:

test:
  stage: test
  script:
    - dotnet test --collect:"XPlat Code Coverage"
  artifacts:
    reports:
      cobertura: '**/coverage.cobertura.xml'

这个任务用shell或docker执行器都能跑,只要服务器上装了.NET 6 SDK就行。

安全扫描(以SAST为例)

直接套用GitLab官方模板,Runner会自动处理镜像拉取和扫描:

include:
  - template: Security/SAST.gitlab-ci.yml

sast:
  variables:
    SAST_DEFAULT_ANALYZERS: "dotnet-sast" # 只启用.NET相关扫描器

流水线运行时,Runner会自动下载dotnet-sast镜像,在容器内完成代码扫描,再把结果上报给GitLab。

误区澄清

  • 不用手动下载或配置扫描用的Docker容器:官方模板已经指定了镜像地址,Runner会自动完成拉取、运行、销毁的全流程。
  • 如果坚持用shell执行器,也可以手动安装扫描工具(比如SonarScanner CLI),但这种方式需要自己维护工具版本,远不如Docker方式省心,也不符合GitLab的最佳实践。

内容的提问来源于stack exchange,提问作者endurium

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 10:32:34