You need to enable JavaScript to run this app. GitLab CI执行docker build报错docker: not found退出码127求助
优惠活动
大模型
产品
解决方案
定价
更多

GitLab CI执行docker build报错docker: not found退出码127求助

问题根因

你当前的GitLab CI Job运行环境中未预装Docker客户端,因此执行docker build命令时抛出command not found错误,退出码127。另外你的配置还存在另外两处语法错误,会导致后续构建失败,可同步修复。

修复方案

  1. 调整.gitlab-ci.yml配置,启用Docker-in-Docker(DinD)服务支撑镜像构建
stages:
  - java7
# - java11
# - deploy

variables:
  # 配置Docker daemon访问地址,适配DinD服务
  DOCKER_HOST: tcp://docker:2375/
  # 关闭TLS校验降低配置复杂度
  DOCKER_TLS_CERTDIR: ""

java7:
  stage: java7
  # 指定Job运行镜像为官方Docker镜像,预装Docker客户端
  image: docker:latest
  # 启用DinD服务提供Docker daemon
  services:
    - docker:dind
  script:
      # 末尾补充构建上下文.,否则Docker会找不到Dockerfile
      - docker build --build-arg JAVA_VERSION=openjdk7 .
  # 打开tags配置,指定使用支持Docker的Runner执行任务
  tags:
    - docker

#java11:
#  stage: java11
#  image: docker:latest
#  services:
#    - docker:dind
#  script:
#    - docker build --build-arg JAVA_VERSION=openjdk11 .
#  tags:
#    - docker
  1. 修复Dockerfile语法错误
    你当前Dockerfile中安装Java的命令未正确引用变量,将对应行修改为:
RUN apk --update --no-cache add $JAVA_VERSION curl

可选替代方案(仅适用于私有Runner场景)

如果你使用的是自行维护的Docker Runner,可以直接在Runner的config.toml配置中添加宿主机Docker套接字挂载:

[[runners]]
  [runners.docker]
    volumes = ["/var/run/docker.sock:/var/run/docker.sock", "/cache"]

配置完成后无需启用DinD服务,Job内即可直接调用宿主机的Docker daemon执行构建操作。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 14:54:03