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

GitLab Runner构建Docker镜像时报docker: not found错误求助

问题根因分析

你遇到的docker: not found报错有两个核心原因:

  1. 你当前CI任务使用的基础镜像是trivy官方镜像,该镜像仅预装了trivy相关组件,没有内置docker CLI工具,无法直接执行docker相关命令
  2. trivy镜像默认设置了ENTRYPOINT ["trivy"],如果不主动覆盖入口点,CI执行的所有脚本命令都会被默认当作trivy的参数执行,也会导致命令执行异常
解决方案

方案一:拆分CI任务(最推荐)

将镜像构建和镜像扫描拆分为两个独立的CI任务,实现职责分离,避免基础镜像依赖冲突:

  1. 新增镜像构建任务,使用官方docker:latest作为基础镜像,搭配docker:dind服务完成镜像构建和推送
  2. 保留容器扫描任务专门负责镜像安全检测,直接拉取前序任务构建好的镜像进行扫描即可,无需在扫描任务中执行构建操作
    示例配置参考:
stages:
  - build
  - test

# 镜像构建任务
build_image:
  stage: build
  image: docker:latest
  services:
    - docker:dind
  variables:
    DOCKER_HOST: tcp://docker:2376
    DOCKER_TLS_CERTDIR: "/certs"
  script:
    - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
    - docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG .
    - docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG

# 容器扫描任务
container_scanning:
  stage: test
  image:
    name: $CI_REGISTRY/devops/trivy/trivy:0.20.1
    entrypoint: [""] # 覆盖默认ENTRYPOINT,保证CI脚本正常执行
  variables:
    FULL_IMAGE_NAME: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG
  script:
    - trivy image --skip-update --exit-code 1 --no-progress $FULL_IMAGE_NAME

方案二:单任务实现构建+扫描

如果必须在同一个任务中完成两个操作,需要调整CI配置适配依赖:

  1. 覆盖trivy镜像的默认ENTRYPOINT
  2. 任务启动后手动安装docker CLI,同时配置docker:dind服务保证docker daemon可用
    示例配置参考:
container_scanning:
  stage: test
  image:
    name: $CI_REGISTRY/devops/trivy/trivy:0.20.1
    entrypoint: [""] # 关键配置:覆盖默认的trivy入口点
  services:
    - docker:dind # 挂载docker daemon服务
  variables:
    GIT_STRATEGY: none
    FULL_IMAGE_NAME: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG
    DOCKER_HOST: tcp://docker:2375/
    DOCKER_DRIVER: overlay2
    DOCKER_TLS_CERTDIR: ""
  script:
    # 先安装docker CLI
    - apk add --no-cache docker
    - docker build -t testdocker .
    - trivy image --skip-update --exit-code 1 --no-progress testdocker
附加问题修正

你提供的Dockerfile存在语法错误,FROM关键字后不能留空,需要调整为:

FROM Test.dev/devops/aquasec/trivy:0.16.0
RUN trivy filesystem --skip-update --exit-code 1 --no-progress /

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 01:15:07