配置Gitlab SAST扫描失败:make命令缺失问题求助
GitLab SAST扫描配置问题解决
问题根源
- GitLab SAST模板的默认作业会使用官方预定义的专用扫描镜像,不会继承你在CI配置中设置的全局Python镜像,这就是扫描环境出现Python 3.9而非指定的3.11的原因。
- 报错
make: not found是因为当前SAST镜像未预装make工具,但扫描流程中触发了依赖该工具的操作。
解决方案1:为SAST作业指定含依赖的自定义镜像
修改CI配置,覆盖SAST作业的镜像,使用预装make的Python 3.11镜像(比如官方python:3.11-bullseye,该版本自带基础编译工具):
include: - template: Security/SAST.gitlab-ci.yml # 覆盖SAST作业的镜像设置 sast: image: python:3.11-bullseye
解决方案2:在SAST作业中手动安装依赖
若不想更换镜像,可在SAST作业的before_script中安装make(以Debian/Ubuntu系镜像为例):
include: - template: Security/SAST.gitlab-ci.yml sast: image: python:3.11-slim before_script: - apt-get update && apt-get install -y make --no-install-recommends
解决方案3:调整SAST扫描器行为
如果项目不需要触发make操作,可通过变量禁用自动依赖安装,简化扫描流程:
include: - template: Security/SAST.gitlab-ci.yml variables: # 禁用Docker-in-Docker,切换到本地扫描模式 SAST_DISABLE_DIND: "true" # 针对Python扫描器,跳过依赖安装步骤 PYTHON_SAST_INSTALL_DEPENDENCIES: "false" # 仅启用Python专用扫描器bandit,减少不必要的依赖加载 SAST_DEFAULT_ANALYZERS: "bandit"
内容的提问来源于stack exchange,提问作者HansDoe
相关产品推荐
相关产品推荐

