Docker中Jenkins使用CMake构建失败求助:找不到Unix Makefiles
解决Jenkins Docker容器中CMake构建缺少编译工具链的问题
你的问题根源是官方jenkins/jenkins:lts-jdk11镜像仅包含Jenkins运行环境和JDK,没有预装C/C++编译工具链与构建工具,CMake插件仅负责安装CMake本身,不会自动补全这些依赖。以下是两种可行解决方案:
方法1:自定义包含工具链的Jenkins镜像(推荐,持久化)
创建Dockerfile,基于官方镜像添加所需工具:
FROM jenkins/jenkins:lts-jdk11 USER root # 安装C/C++编译工具(gcc/g++)、make构建工具,以及可选的Ninja RUN apt-get update && apt-get install -y --no-install-recommends \ build-essential \ ninja-build \ && rm -rf /var/lib/apt/lists/* USER jenkins
构建自定义镜像:
docker build -t my-jenkins-lts-jdk11 .
之后使用该镜像启动Jenkins容器,替换原官方镜像即可。
方法2:在运行中的容器内临时安装(仅用于测试)
进入Jenkins容器:
docker exec -it <你的Jenkins容器ID/名称> bash
切换到root用户执行安装:
su - root apt-get update && apt-get install -y build-essential ninja-build
⚠️ 注意:这种方式安装的工具会在容器重启后丢失,仅适合临时验证。
额外配置提示
- 若想使用Ninja替代默认的
Unix Makefiles,在Jenkins的CMake Build步骤中,将「构建器」选项改为Ninja即可(无需额外插件,只要容器已安装ninja-build)。 - 确保CMake插件配置的CMake路径正确(插件已自动下载安装,通常无需手动调整)。
内容的提问来源于stack exchange,提问作者Autechre
相关产品推荐
相关产品推荐

