krthkj/cpp

By krthkj

Updated 6 months ago

Modern C++20/23 Docker environments with GCC/Clang, CUDA, and essential libraries.

Image
Languages & frameworks
Developer tools
0

2.1K

krthkj/cpp repository overview

krthkj/cpp - Modern C++ Development Environments

A comprehensive collection of optimized Docker images for C++20/23 development, featuring multiple base distributions, compiler toolchains, and specialized configurations for different development workflows.

🚀 Key Features

  • Modern C++ Support: Full C++20/23 compatibility with GCC 14/15 and Clang 20
  • Multiple Base Images: Choose between Alpine (minimal) and Ubuntu (full-featured)
  • GPU Development: CUDA-enabled variants for parallel computing
  • Build Tools: CMake 4.0.5+, Ninja, and comprehensive development utilities
  • Essential Libraries: Pre-installed Boost, TBB, spdlog, OpenCL, and more
  • Development Ready: Includes debuggers (GDB/LLDB), formatters, and static analysis tools

📦 Available Image Variants

Alpine Linux (Minimal Footprint)
  • krthkj/cpp:gcc-alpine - Latest stable GCC-based minimal environment
  • krthkj/cpp:clang-alpine - Latest stable Clang-based minimal environment
  • krthkj/cpp:gcc-alpine-edge - Latest GCC from Alpine edge
  • krthkj/cpp:clang-alpine-edge - Latest Clang from Alpine edge
  • krthkj/cpp:gcc14 - Ubuntu LTS with GCC 14
  • krthkj/cpp:clang20 - Ubuntu LTS with Clang 20
  • krthkj/cpp:gcc15 - rolling Ubuntu with GCC 15
  • krthkj/cpp:gcc-devel - devel Ubuntu with latest GCC
CUDA Development
  • krthkj/cpp:gcc14-cuda13 - GCC 14 with CUDA 13.0.2, on Ubuntu LTS
  • krthkj/cpp:clang20-cuda13 - Clang 20 with CUDA 13.0.2, on Ubuntu LTS

🛠️ Pre-installed Components

Compilers & Toolchains:
  • GCC 14/15 or Clang 20 (depending on variant)
  • CUDA 13.0.2 (on CUDA variants)
  • Ninja build system
Build Tools:
  • CMake 4.0.5+
  • GDB/LLDB debuggers
  • clang-format, clang-tidy (Clang variants)
Libraries & Headers:
  • Boost 1.89.0
  • Intel TBB (Threading Building Blocks)
  • spdlog (high-performance logging)
  • OpenCL headers and development files
  • Google Test/Mock frameworks
  • SQLite3 with development headers
  • JSON libraries (nlohmann, jsoncpp)
Development Utilities:
  • pkg-config
  • D-Bus development support
  • SSL/ICU compression libraries

💡 Usage Examples

Basic C++ Development

docker run --rm -it -v $(pwd):/app krthkj/cpp:gcc14

CUDA Development

docker run --rm -it --gpus all -v $(pwd):/app krthkj/cpp:gcc14-cuda13

Development with IDE Integration

# For VS Code Dev Containers or CLion
docker run --rm -it -v $(pwd):/app -p 22:22 krthkj/cpp:clang20

ToDo

  • Ability to run GUI & with minimal configuration changes
  • Better layer the images
  • untested on other IDE, only tested on CLion 2025.2.4

🎯 Target Use Cases

  • Cross-platform C++ development with consistent environments
  • CI/CD pipelines with reproducible builds
  • GPU computing and parallel programming with CUDA
  • Modern C++ projects requiring C++20/23 features
  • Educational environments for learning C++
  • Containerized microservices development

🔄 Build & Maintenance

Images are automatically built and updated with:

  • Latest compiler versions
  • Security patches and dependency updates
  • Optimized layer caching for faster pulls
  • Multi-architecture support (x86_64)

📚 Documentation

For detailed usage instructions and configuration options, visit the GitHub repository (https://github.com/krthkj/krthkj-docker-cpp).

Disclaimer

These Docker images are intended to used for development and not for testing or production.

This software is provided "as-is" without any warranties. The maintainer is not responsible for any damages, data loss, or security issues that may arise from using these Docker images. Use at your own risk and ensure you follow security best practices.

These docker images are sourced from alpine, ubuntu, nvidia/cuda and others. Please refer their corresponding licenses.

Tag summary

Content type

Image

Digest

sha256:66594d729

Size

201.5 MB

Last updated

6 months ago

docker pull krthkj/cpp:gcc-alpine-