尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

Docker打包CMake项目镜像操作步骤

Docker打包CMake项目镜像操作步骤
📅 发布时间:2026/6/19 21:26:06

步骤 1:创建项目目录结构

HelloWorldProject/
├── CMakeLists.txt
├── Dockerfile
└── HelloWorld.cpp

步骤 2:编写 HelloWorld.cpp

在 HelloWorld.cpp 中写:

#include <iostream>int main() {std::cout << "Hello, World!" << std::endl;return 0;
}

步骤 3:编写 CMakeLists.txt

在项目根目录下创建 CMakeLists.txt:

cmake_minimum_required(VERSION 3.10)
project(HelloWorld)# 设置 C++ 标准
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED True)# 添加可执行文件
add_executable(helloworld HelloWorld.cpp)

步骤 4:在本地测试 CMake 编译

  1. 创建构建目录并进入:
mkdir build
cd build
  1. 生成 Makefile:
cmake ..
  1. 编译:
cmake --build .
  1. 运行:
./helloworld

你应该看到输出:

Hello, World!

步骤 5:编写 Dockerfile

在项目根目录下创建 Dockerfile:

# ===== 编译阶段 =====
FROM ubuntu:22.04 AS builder# 安装构建工具
RUN apt-get update && \apt-get install -y build-essential cmake && \rm -rf /var/lib/apt/lists/*# 设置工作目录
WORKDIR /app# 复制项目文件
COPY . .# 创建构建目录并编译
RUN mkdir build && cd build && cmake .. && cmake --build .# ===== 运行阶段 =====
FROM ubuntu:22.04# 设置工作目录
WORKDIR /app# 仅从 builder 阶段复制可执行文件
COPY --from=builder /app/build/helloworld .# 设置容器启动命令
CMD ["./helloworld"]

步骤 6:构建 Docker 镜像

在项目根目录下执行:

docker build -t helloworld-cpp .

这里 helloworld-cpp 是镜像名称。


步骤 7:运行 Docker 容器

docker run --rm helloworld-cpp

输出应该是:

Hello, World!

💡 注意事项:

  1. 如果项目有多文件或第三方依赖,可在 CMakeLists.txt 和 Dockerfile 中适当调整。

  2. 可以通过多阶段构建优化镜像大小,将编译阶段和运行阶段分开:

    • 编译阶段用 ubuntu 或 debian 带编译工具。
    • 运行阶段只用 scratch 或 ubuntu:22.04 仅复制可执行文件。

相关新闻

  • 【智慧】 gym104385
  • __repr__魔术方法
  • 合合信息获首批“个人信息保护合规审计自审计能力评价”最高等级认证

最新新闻

  • DeepSeek V4硬件适配实录:昇腾910B与H100双轨训练逻辑
  • SAP BOM查询实战:从正查到反查的完整指南
  • 【2026年6月】热水离心泵厂家推荐指南 - 多才菠萝
  • Python图片压缩方法全解:从入门到进阶
  • 【JAVA毕设源码分享】基于SpringBoot的中华传统文化网站(程序+文档+代码讲解+一条龙定制)
  • 全国学历提升继续教育学习体验实录

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号