C++ и Docker: контейнеризация приложений — Алексей Соколов — обложка книги
300 страниц
C++
PDF
4.5

C++ и Docker: контейнеризация приложений

Практическое руководство по упаковке и развертыванию C++-проектов

Автор:

Год:

Краткое содержимое:

Книга «C++ и Docker: контейнеризация приложений» — это первое в своем роде практическое руководство, которое закрывает разрыв между классической разработкой на C++ и современными практиками DevOps. Если вы C++ разработчик, который хочет упростить сборку, тестирование и развертывание своих проектов, или DevOps-инженер, столкнувшийся с необходимостью контейнеризировать legacy C++ код, — эта книга для вас.

В отличие от популярных руководств по Docker для веб-приложений (Python, Node.js, Go), C++ предъявляет особые требования: статическая и динамическая линковка, управление системными библиотеками, оптимизация размера образа, работа с CMake и Vcpkg. Автор подробно разбирает все эти аспекты, предлагая готовые рецепты и шаблоны Dockerfile.

Что вы узнаете из книги:

  • Основы Docker для C++: чем отличается контейнеризация скомпилированных языков от интерпретируемых, как избежать типичных ошибок (например, проблемы с glibc).
  • Мультистейджинг (multi-stage builds): как собрать приложение в одном образе, а в продакшн отправить минимальный артефакт без компилятора и заголовочных файлов.
  • Управление зависимостями: интеграция Docker с Conan, Vcpkg и CMake. Как кэшировать библиотеки, чтобы не пересобирать их при каждом коммите.
  • DevContainers и VSCode: настройка окружения разработки в контейнере, чтобы вся команда работала в идентичных условиях.
  • CI/CD пайплайны: автоматизация сборки, линковки, статического анализа и unit-тестов внутри Docker с использованием GitHub Actions и GitLab CI.
  • Оптимизация размера образа: как уменьшить итоговый образ с 2 ГБ до 50 МБ с помощью Alpine, Scratch и статической компиляции.
  • Деплой в продакшн: запуск микросервисов на C++ в Docker Swarm и Kubernetes, работа с healthcheck и graceful shutdown.
  • Безопасность: сканирование уязвимостей, запуск контейнеров с ограниченными правами, использование read-only файловых систем.

Для кого эта книга:

  • C++ разработчики, которые хотят внедрить Docker в свой рабочий процесс.
  • DevOps инженеры, которым нужно поддерживать сборку и деплой C++ приложений.
  • Студенты и преподаватели, изучающие современные методологии разработки ПО.
  • Техлиды, планирующие миграцию монолита на C++ в микросервисную архитектуру.

Все примеры в книге основаны на реальных проектах и сопровождаются полным кодом, доступным в репозитории. Вы научитесь не просто запускать "Hello World" в контейнере, а выстраивать надежный, воспроизводимый и масштабируемый процесс от разработки до продакшна.

Книга подходит для читателей с базовым знанием C++ и начальным пониманием Docker. Если вы умеете писать простые программы на C++ и когда-либо запускали docker run, — этого достаточно, чтобы начать.

Рекомендаций