Pre-configured Docker images with cross-compilation toolchains for building software across multiple architectures and platforms.
Dockcross is a collection of Docker images that provide pre-configured cross-compilation toolchains for building software targeting multiple CPU architectures and operating systems. It solves the problem of setting up complex cross-compilation environments by packaging compilers, libraries, and build tools into portable containers that work consistently across different host systems.
Developers and system integrators who need to build software for embedded systems, multiple Linux architectures, Android, Windows, or WebAssembly from a single development machine, particularly those working on CI/CD pipelines or projects requiring reproducible builds.
Dockcross eliminates the headache of manually configuring cross-compilation toolchains by providing ready-to-use Docker images with everything pre-installed and properly configured. It offers a consistent, isolated build environment that works across different host systems and simplifies targeting exotic or multiple architectures.
Cross compiling toolchains in Docker images
Supports over 50 pre-configured toolchains for architectures including ARM, MIPS, PowerPC, RISC-V, WebAssembly, Android, and Windows, as detailed in the extensive summary table.
Includes CMake, Ninja, Meson, Conan package manager, and Rustup, reducing the need for external tool installation and configuration.
Commands run as the host user with proper file ownership, and build tools are containerized to prevent host system contamination.
Works with Docker or Podman via the OCI_EXE environment variable, offering flexibility in container runtime choice.
Requires Docker or Podman to be installed and running, which can be a barrier in restricted environments or for users avoiding container overhead.
Default images are only for x86_64 hosts; building for ARM64 or other host architectures requires manual compilation, as admitted in the 'Build images by yourself' section.
The project lists deprecated images (e.g., manylinux-x86 with EOL dates), forcing users to actively manage updates to avoid unsupported toolchains.
Installation involves pulling Docker images, generating helper scripts, and configuring per-project settings, which adds upfront complexity compared to native toolchains.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.