Introducing our new CEO Don Johnson - Read More

stabletec/build-core

By stabletec

Updated 13 days ago

These images form the core of other images used for building, targeting specific platforms.

Image
Developer Tools
4

100K+

Build Core Images

pipeline statuslicensedocker pullsdocker stars

This contains a bunch of Dockerfiles for generating images useful as a basis for performing C/C++ development work, including available compilers and base tools. These images are meant to either be used on their own for very basic items, or as base images to be extended with additional required libraries for specific projects.

These images are used to target platforms/distributions, not specific tools or compilers, so there is some overlap between them for certain items.

Supported tags and respective Dockerfile links

Architecture Support

OSamd64arm64ppc64les390xriscv64
AlmaXXXX
Arch (SteamOS)X
Debian 10/11XX
Debian 12+XXXX
FedoraXXXX
openSUSEXXXX
Rocky 8XX
Rocky 9+XXXX
UbtuntuXXXXX
WindowsX
MSYS/MinGWX

Images without an OS_VERSION, ex. debian or rocky, are based off the 'latest' tag of the base image, which often means it also shares the same image layers as the OS_VERSION's as well. Ex. debian uses the same layers as debian-12 and rocky shares the same layers as rocky-9.

Tooling Available

Linux

These images form the core of other images used for building an assortment of C/C++ projects, and as such include this core software:

  • CMake
  • Clang
  • GCC
  • Git
  • Make
  • Ninja Build
  • pkgconf
  • Python 3
  • Subversion

The Linux images default to gcc/g++ compiler. To use the clang/clang++ compilers, simply define the CC/CXX environment variables when starting the container, for example:

# Starts the fedora container, setting up with the clang/clang++ compilers
docker run -e CC=clang -e CXX=clang++ stabletec/build-core:fedora
Windows

The SDK based images contain two compilers with three options available, and the basic toolset:

  • Chocolatey
  • clang/clang-cl
  • CMake
  • Git
  • Ninja Build
  • Python 3
  • Subversion
  • Visual Studio Build Tools (MSVC) (with Address Sanitizer)

Due to lack of forward-compatability for Windows images, they are split based on the Long-Term-Server-Core (LTSC) version, and split again on the Visual Studio versions on each base.

The Windows images default to the MSVC compiler. To use the clang/clang-cl compilers, simply define the CC/CXX environment variables when starting the container, for example:

# Starts the Windows container, setting up with the clang-cl compiler
docker run -e CC=clang-cl -e CXX=clang-cl stabletec/build-core:windows-ltsc2022

# Starts the Windows container, setting up with the clang compiler
docker run -e CC=clang -e CXX=clang stabletec/build-core:windows-ltsc2022
MSYS/MinGW

These images form the core of other images used for building an assortment of C/C++ projects, and as such include this core software:

  • CMake
  • Clang
  • GCC
  • Git
  • Make
  • Ninja Build
  • pkgconf
  • Python 3
  • Subversion

There are several variants on MinGW environments available, as described here.

Currently, only the amd64 based environments are available:

  • ucrt64
  • mingw64
  • clang64

Due to lack of forward-compatability for Windows images, they are split based on the Long-Term-Server-Core (LTSC) version, and again on the MinGW environments.

Analysis Tools

Fedora images also have analysis tools useful for code instrumentation and analysis:

  • AddressSanitizer
  • LeakSanitizer
  • ThreadSanitizer
  • UndefinedBehaviourSanitizer
  • clang-tidy
  • clang-format
  • cppcheck
  • llvm
  • include-what-you-use (iwyu)

Docker Pull Command

docker pull stabletec/build-core