本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
CMake Docker 镜像是基于 CMake(跨平台开源构建系统)的容器化部署方案,提供预配置的 CMake 运行环境。该镜像旨在简化跨平台项目构建流程,消除本地环境依赖差异,支持快速集成到开发、测试及 CI/CD 流程中。
-G 参数指定 Generator。CMakeLists.txt 脚本定义项目结构、依赖关系及构建规则,支持条件编译、变量传递和外部依赖管理。CMakeCache.txt 缓存构建配置,加速重复构建过程。latest、3.28、3.27),支持指定 CMake 版本,满足不同项目兼容性需求。跨平台项目构建
适用于需在不同操作系统(如 Linux 开发、Windows 部署)间保持一致构建流程的项目,如 C/C++ 跨平台应用、库开发等。
CI/CD 流程集成
作为 CI/CD 流水线的构建环节,在 Jenkins、GitHub Actions、GitLab CI 等平台中自动化执行项目构建,确保流程一致性。
开发环境标准化
团队统一使用镜像版本,避免因本地 CMake 版本差异导致的“在我电脑上能运行”问题。
临时构建任务
快速验证第三方项目构建流程,无需在本地安装依赖,构建完成后自动清理容器(--rm 参数)。
CMakeLists.txt 文件。通过 docker run 启动容器,挂载项目目录并执行 CMake 命令:
# 进入项目根目录,执行 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)。通过 -G 参数指定构建工具(如 Ninja、Visual Studio):
# 使用 Ninja 生成构建文件(需容器支持 Ninja,可选择包含 Ninja 的镜像标签,如 cmake:latest-ninja) docker run --rm -v "$PWD":/app -w /app cmake:latest-ninja cmake -G Ninja .
通过 -D 参数传递 CMake 变量(如编译选项、安装路径等):
# 设置 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):
# 使用 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 缓存(如依赖下载缓存、编译中间文件)可通过卷挂载持久化,避免重复下载/编译:
# 创建命名卷存储 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++ 项目为例):
# 阶段 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_STANDARD | C++ 标准版本 | 17 |
BUILD_SHARED_LIBS | 是否构建共享库(ON/OFF) | ON |
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
# 假设使用包含 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.yml 配置文件,定义构建服务:
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: # 持久化缓存卷
运行构建:
docker-compose run cmake-build
文件权限:挂载宿主目录时,容器内默认使用 root 用户,可能导致构建产物权限问题。可通过 -u $(id -u):$(id -g) 指定用户 ID 解决:
docker run --rm -u $(id -u):$(id -g) -v "$PWD":/app -w /app cmake:latest cmake .
网络依赖:若构建需下载外部依赖(如 FetchContent),确保容器网络通畅(默认使用宿主网络)。
Windows 路径:Windows 系统下挂载目录需使用 / 分隔路径,示例:
docker run --rm -v "C:/projects/myapp:/app" -w /app cmake:latest cmake .
镜像标签选择:生产环境建议指定具体版本标签(如 3.28.1),避免 latest 标签自动更新导致兼容性问题。
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429