C++ 与 Docker:应用容器化
C++ 与 Docker:应用容器化
简介:
《C++ 与 Docker:应用容器化》一书是首部此类实践指南,它弥合了经典 C++ 开发与现代 DevOps 实践之间的鸿沟。如果您是一位希望简化项目构建、测试和部署的 C++ 开发者,或者是一位需要将遗留 C++ 代码容器化的 DevOps 工程师,那么这本书正是为您准备的。
与流行的针对 Web 应用(Python、Node.js、Go)的 Docker 指南不同,C++ 有其特殊要求:静态与动态链接、系统库管理、镜像大小优化、CMake 和 Vcpkg 的使用。作者详细剖析了所有这些方面,并提供了现成的方案和 Dockerfile 模板。
您将从本书中学到:
- C++ 的 Docker 基础:编译型语言与解释型语言的容器化有何不同,如何避免常见错误(例如 glibc 问题)。
- 多阶段构建:如何在一个镜像中构建应用,并将不包含编译器和头文件的最小产物发送到生产环境。
- 依赖管理:Docker 与 Conan、Vcpkg 和 CMake 的集成。如何缓存库文件,避免每次提交都重新构建。
- DevContainers 与 VSCode:在容器中配置开发环境,使整个团队在相同条件下工作。
- CI/CD 流水线:在 Docker 内部使用 GitHub Actions 和 GitLab CI 自动化构建、链接、静态分析和单元测试。
- 镜像大小优化:如何通过使用 Alpine、Scratch 和静态编译,将最终镜像从 2GB 缩减到 50MB。
- 生产环境部署:在 Docker Swarm 和 Kubernetes 中运行 C++ 微服务,处理健康检查和优雅关闭。
- 安全性:漏洞扫描、以受限权限运行容器、使用只读文件系统。
本书适合的读者:
- 希望将 Docker 引入工作流程的 C++ 开发者。
- 需要支持 C++ 应用构建和部署的 DevOps 工程师。
- 学习现代软件开发方法论的学生和教师。
- 计划将 C++ 单体应用迁移到微服务架构的技术负责人。
本书中的所有示例均基于真实项目,并附有完整的代码,可在仓库中获取。您将学会的不仅仅是“Hello World”在容器中运行,而是构建一个从开发到生产的可靠、可复现且可扩展的流程。
本书适合具备 C++ 基础知识并对 Docker 有初步了解的读者。如果您能用 C++ 编写简单程序,并且曾经运行过 docker run,那么这些知识足以让您开始学习。