专属域名
文档搜索
轩辕助手
Run助手
邀请有礼
返回顶部
快速返回页面顶部
收起
收起工具栏
轩辕镜像 官方专业版
轩辕镜像 官方专业版轩辕镜像 官方专业版官方专业版
首页个人中心搜索镜像

交易
充值流量我的订单
工具
提交工单镜像收录一键安装
Npm 源Pip 源Homebrew 源
帮助
常见问题
其他
关于我们网站地图

官方QQ群: 13763429

kitware/cmake Docker 镜像 - 轩辕镜像

cmake
kitware/cmake
CMake是跨平台的开源构建系统。
14 收藏0 次下载activekitware镜像
🚀专业版镜像服务,面向生产环境设计
中文简介版本下载
🚀专业版镜像服务,面向生产环境设计

CMake Docker 镜像文档

概述

CMake Docker 镜像是基于 CMake(跨平台开源构建系统)的容器化部署方案,提供预配置的 CMake 运行环境。该镜像旨在简化跨平台项目构建流程,消除本地环境依赖差异,支持快速集成到开发、测试及 CI/CD 流程中。

核心功能与特性

核心功能
  • 跨平台构建支持:原生支持 Windows、Linux、macOS 等多平台项目构建,自动生成对应平台的构建文件(如 Makefile、Visual Studio 解决方案、Ninja 脚本等)。
  • 多构建系统兼容:支持多种构建工具(Make、Ninja、Xcode、Visual Studio 等),可通过 -G 参数指定 Generator。
  • 模块化配置:通过 CMakeLists.txt 脚本定义项目结构、依赖关系及构建规则,支持条件编译、变量传递和外部依赖管理。
  • 缓存机制:自动生成 CMakeCache.txt 缓存构建配置,加速重复构建过程。
镜像特性
  • 即开即用:无需本地安装 CMake,拉取镜像后直接运行构建命令。
  • 版本化管理:提供多个标签(如 latest、3.28、3.27),支持指定 CMake 版本,满足不同项目兼容性需求。
  • 环境隔离:构建过程在容器内隔离执行,避免影响宿主系统环境。
  • 轻量高效:基于 Alpine 或 Debian 基础镜像,体积精简,启动速度快。

使用场景

  1. 跨平台项目构建
    适用于需在不同操作系统(如 Linux 开发、Windows 部署)间保持一致构建流程的项目,如 C/C++ 跨平台应用、库开发等。

  2. CI/CD 流程集成
    作为 CI/CD 流水线的构建环节,在 Jenkins、GitHub Actions、GitLab CI 等平台中自动化执行项目构建,确保流程一致性。

  3. 开发环境标准化
    团队统一使用镜像版本,避免因本地 CMake 版本差异导致的“在我电脑上能运行”问题。

  4. 临时构建任务
    快速验证第三方项目构建流程,无需在本地安装依赖,构建完成后自动清理容器(--rm 参数)。

使用方法与配置说明

基本使用
前提条件
  • 已安装 Docker 引擎(20.10+ 版本推荐)。
  • 项目根目录包含 CMakeLists.txt 文件。
基本构建命令

通过 docker run 启动容器,挂载项目目录并执行 CMake 命令:

bash
# 进入项目根目录,执行 CMake 生成构建文件
docker run --rm -v "$PWD":/app -w /app cmake:latest cmake .

# 生成构建文件后,执行 make 构建(需容器内包含 make,或使用对应构建工具)
docker run --rm -v "$PWD":/app -w /app cmake:latest make
  • --rm:构建完成后自动删除容器,避免残留。
  • -v "$PWD":/app:将当前目录(项目根目录)挂载到容器内 /app 目录。
  • -w /app:设置容器工作目录为 /app(项目挂载路径)。
  • cmake:latest:使用最新版本的 CMake 镜像。
  • cmake .:执行 CMake 命令,生成构建文件(默认生成 Makefile)。
自定义构建
指定构建工具(Generator)

通过 -G 参数指定构建工具(如 Ninja、Visual Studio):

bash
# 使用 Ninja 生成构建文件(需容器支持 Ninja,可选择包含 Ninja 的镜像标签,如 cmake:latest-ninja)
docker run --rm -v "$PWD":/app -w /app cmake:latest-ninja cmake -G Ninja .
设置 CMake 参数

通过 -D 参数传递 CMake 变量(如编译选项、安装路径等):

bash
# 设置 CMAKE_BUILD_TYPE 为 Release,指定安装路径为 /app/install
docker run --rm -v "$PWD":/app -w /app cmake:latest cmake . -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/app/install
版本选择

镜像标签对应 CMake 版本,可通过标签指定版本(完整版本列表见 Docker Hub):

bash
# 使用 CMake 3.27 版本
docker run --rm -v "$PWD":/app -w /app cmake:3.27 cmake .

# 使用 CMake 3.26 版本(Alpine 基础镜像,体积更小)
docker run --rm -v "$PWD":/app -w /app cmake:3.26-alpine cmake .
高级配置
挂载缓存卷加速构建

CMake 缓存(如依赖下载缓存、编译中间文件)可通过卷挂载持久化,避免重复下载/编译:

bash
# 创建命名卷存储 CMake 缓存
docker volume create cmake_cache

# 挂载缓存卷到容器内 CMake 缓存目录
docker run --rm -v "$PWD":/app -v cmake_cache:/root/.cache -w /app cmake:latest cmake .
多阶段构建集成

在 Dockerfile 中集成 CMake 镜像实现多阶段构建(以 C++ 项目为例):

dockerfile
# 阶段 1:使用 CMake 构建项目
FROM cmake:latest AS builder
WORKDIR /app
COPY . .
RUN cmake . -DCMAKE_BUILD_TYPE=Release && make -j4

# 阶段 2:构建运行时镜像
FROM alpine:latest
COPY --from=builder /app/bin/myapp /usr/local/bin/
CMD ["myapp"]

环境变量

CMake 镜像无预设环境变量,构建配置需通过命令行参数(如 -D)或 CMakeLists.txt 定义。常用 CMake 变量示例:

变量名说明示例值
CMAKE_BUILD_TYPE构建类型(Debug/Release)Release
CMAKE_INSTALL_PREFIX安装路径/usr/local
CMAKE_CXX_STANDARDC++ 标准版本17
BUILD_SHARED_LIBS是否构建共享库(ON/OFF)ON

部署示例

docker run 示例
1. 生成构建文件并编译 Debug 版本
bash
docker run --rm -v "$PWD":/app -w /app cmake:3.28 cmake . -DCMAKE_BUILD_TYPE=Debug
docker run --rm -v "$PWD":/app -w /app cmake:3.28 make
2. 使用 Ninja 构建并安装项目
bash
# 假设使用包含 Ninja 的镜像标签
docker run --rm -v "$PWD":/app -w /app cmake:latest-ninja cmake -G Ninja . -DCMAKE_INSTALL_PREFIX=/app/install
docker run --rm -v "$PWD":/app -w /app cmake:latest-ninja ninja install
docker-compose 示例

创建 docker-compose.yml 配置文件,定义构建服务:

yaml
version: '3.8'
services:
  cmake-build:
    image: cmake:3.28
    volumes:
      - ./:/app
      - cmake_cache:/root/.cache  # 挂载缓存卷
    working_dir: /app
    command: cmake . -DCMAKE_BUILD_TYPE=Release && make -j4

volumes:
  cmake_cache:  # 持久化缓存卷

运行构建:

bash
docker-compose run cmake-build

注意事项

  1. 文件权限:挂载宿主目录时,容器内默认使用 root 用户,可能导致构建产物权限问题。可通过 -u $(id -u):$(id -g) 指定用户 ID 解决:
    docker run --rm -u $(id -u):$(id -g) -v "$PWD":/app -w /app cmake:latest cmake .

  2. 网络依赖:若构建需下载外部依赖(如 FetchContent),确保容器网络通畅(默认使用宿主网络)。

  3. Windows 路径:Windows 系统下挂载目录需使用 / 分隔路径,示例:
    docker run --rm -v "C:/projects/myapp:/app" -w /app cmake:latest cmake .

  4. 镜像标签选择:生产环境建议指定具体版本标签(如 3.28.1),避免 latest 标签自动更新导致兼容性问题。

参考链接

  • CMake 官方文档
  • CMake Docker 镜像仓库
  • CMake Generator 列表
查看更多 cmake 相关镜像 →
kitware/cdash logo
kitware/cdash
by kitware
一个开源的基于Web的软件测试结果聚合、分析与显示服务器,帮助开发者监控软件系统状态并持续改进质量。
1100K+ pulls
上次更新:28 天前
kitware/cmb logo
kitware/cmb
by kitware
计算模型构建器镜像,用于快速构建、训练和部署各类计算模型,集成主流计算框架与工具,简化模型开发流程,适用于科学计算、机器学习及数据分析场景。
3100K+ pulls
上次更新:10 天前
kitware/vtk logo
kitware/vtk
by kitware
一个功能强大的数据可视化工具包Docker镜像,提供丰富的2D/3D可视化算法与渲染能力,支持多种数据格式,适用于科学研究、医学成像、工程模拟等领域的数据可视化任务。
6100K+ pulls
上次更新:1 个月前
kitware/paraview logo
kitware/paraview
by kitware
用于数据处理和渲染的ParaView构建版本,支持EGL或OSMesa渲染后端。
7100K+ pulls
上次更新:4 个月前
kitware/intelcompiler logo
kitware/intelcompiler
by kitware
暂无描述
50K+ pulls
上次更新:6 个月前
kitware/trame logo
kitware/trame
by kitware
用于部署trame应用的基础镜像,支持多用户功能,适用于云环境或本地部署场景。
110K+ pulls
上次更新:2 个月前

轩辕镜像配置手册

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式

登录仓库拉取

通过 Docker 登录认证访问私有仓库

Linux

在 Linux 系统配置镜像服务

Windows/Mac

在 Docker Desktop 配置镜像

Docker Compose

Docker Compose 项目配置

K8s Containerd

Kubernetes 集群配置 Containerd

K3s

K3s 轻量级 Kubernetes 镜像加速

Dev Containers

VS Code Dev Containers 配置

MacOS OrbStack

MacOS OrbStack 容器配置

宝塔面板

在宝塔面板一键配置镜像

群晖

Synology 群晖 NAS 配置

飞牛

飞牛 fnOS 系统配置镜像

极空间

极空间 NAS 系统配置服务

爱快路由

爱快 iKuai 路由系统配置

绿联

绿联 NAS 系统配置镜像

威联通

QNAP 威联通 NAS 配置

Podman

Podman 容器引擎配置

Singularity/Apptainer

HPC 科学计算容器配置

其他仓库配置

ghcr、Quay、nvcr 等镜像仓库

专属域名拉取

无需登录使用专属域名

需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单

镜像拉取常见问题

轩辕镜像免费版与专业版有什么区别?

免费版仅支持 Docker Hub 访问,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。

轩辕镜像支持哪些镜像仓库?

专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等;免费版仅支持 docker.io。

流量耗尽错误提示

当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。

410 错误问题

通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。

manifest unknown 错误

先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。

镜像拉取成功后,如何去掉轩辕镜像域名前缀?

使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。

查看全部问题→

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

oldzhang的头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

轩辕镜像
镜像详情
...
kitware/cmake
官方博客Docker 镜像使用技巧与技术博客
热门镜像查看热门 Docker 镜像推荐
一键安装一键安装 Docker 并配置镜像源
提交工单
咨询镜像拉取问题请 提交工单,官方技术交流群:13763429
轩辕镜像面向开发者与科研用户,提供开源镜像的搜索和访问支持。所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
咨询镜像拉取问题请提交工单,官方技术交流群:
轩辕镜像面向开发者与科研用户,提供开源镜像的搜索和访问支持。所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
官方邮箱:点击复制邮箱
©2024-2026 源码跳动
官方邮箱:点击复制邮箱Copyright © 2024-2026 杭州源码跳动科技有限公司. All rights reserved.