如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
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 命令:
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 版本,可通过标签指定版本(完整版本列表见 https://hub.docker.com/_/cmake%EF%BC%89%EF%BC%9A
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_STANDARD | C++ 标准版本 | 17 |
BUILD_SHARED_LIBS | 是否构建共享库(ON/OFF) | ON |
1. 生成构建文件并编译 Debug 版本
bashdocker 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.yml 配置文件,定义构建服务:
yamlversion: '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: # 持久化缓存卷
运行构建:
bashdocker-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 标签自动更新导致兼容性问题。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。




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