From ecc02c2f3947d6a3996dd300076275cfa625ef31 Mon Sep 17 00:00:00 2001 From: Bensuperpc Date: Tue, 29 Jun 2021 16:44:11 +0200 Subject: [PATCH 1/5] First new version of README Move from .rst to .md Signed-off-by: Bensuperpc --- README.md | 470 +++++++++++++++++++++++++++++++++++++++++++++++++++ README.rst | 484 ----------------------------------------------------- 2 files changed, 470 insertions(+), 484 deletions(-) create mode 100644 README.md delete mode 100644 README.rst diff --git a/README.md b/README.md new file mode 100644 index 0000000..131c1ed --- /dev/null +++ b/README.md @@ -0,0 +1,470 @@ +--- +title: dockcross +--- + +Cross compiling toolchains in Docker images. + +[![image](https://github.com/dockcross/dockcross/workflows/Dockcross%20CI/badge.svg)](https://github.com/dockcross/dockcross/actions?query=branch%3Amaster) + +# Features + +- Pre-built and configured toolchains for cross compiling. +- Most images also contain an emulator for the target system. +- Clean separation of build tools, source code, and build artifacts. +- Commands in the container are run as the calling user, so that any + created files have the expected ownership, (i.e. not root). +- Make variables ([CC]{.title-ref}, [LD]{.title-ref} etc) are set to + point to the appropriate tools in the container. +- Recent [CMake](https://cmake.org) and ninja are precompiled. +- [Conan.io](https://www.conan.io) can be used as a package manager. +- Toolchain files configured for CMake. +- Current directory is mounted as the container\'s workdir, `/work`. +- Works with the [Docker for + Mac](https://docs.docker.com/docker-for-mac/) and [Docker for + Windows](https://docs.docker.com/docker-for-windows/). +- Support using alternative container executor by setting + [OCI_EXE]{.title-ref} environment variable. By default, it searches + for [docker]{.title-ref} and + \[[podman]{.title-ref}\]() executable. + +# Examples + +1. `dockcross make`: Build the *Makefile* in the current directory. +2. `dockcross cmake -Bbuild -H. -GNinja`: Run CMake with a build + directory `./build` for a *CMakeLists.txt* file in the current + directory and generate `ninja` build configuration files. +3. `dockcross ninja -Cbuild`: Run ninja in the `./build` directory. +4. `dockcross bash -c '$CC test/C/hello.c -o hello'`: Build the + *hello.c* file with the compiler identified with the `CC` + environmental variable in the build environment. +5. `dockcross bash`: Run an interactive shell in the build environment. + +Note that commands are executed verbatim. If any shell processing for +environment variable expansion or redirection is required, please use +[bash -c \'command args\...\']{.title-ref}. + +# Installation + +This image does not need to be run manually. Instead, there is a helper +script to execute build commands on source code existing on the local +host filesystem. This script is bundled with the image. + +To install the helper script, run one of the images with no arguments, +and redirect the output to a file: + + docker run --rm CROSS_COMPILER_IMAGE_NAME > ./dockcross + chmod +x ./dockcross + mv ./dockcross ~/bin/ + +Where [CROSS_COMPILER_IMAGE_NAME]{.title-ref} is the name of the +cross-compiler toolchain Docker instance, e.g. +[dockcross/linux-armv7]{.title-ref}. + +Only 64-bit x86_64 images are provided; a 64-bit x86_64 host system is +required. + +# Usage + +For the impatient, here\'s how to compile a hello world for armv7: + + cd ~/src/dockcross + docker run --rm dockcross/linux-armv7 > ./dockcross-linux-armv7 + chmod +x ./dockcross-linux-armv7 + ./dockcross-linux-armv7 bash -c '$CC test/C/hello.c -o hello_arm' + +Note how invoking any toolchain command (make, gcc, etc.) is just a +matter of prepending the **dockcross** script on the commandline: + + ./dockcross-linux-armv7 [command] [args...] + +The dockcross script will execute the given command-line inside the +container, along with all arguments passed after the command. Commands +that evaluate environmental variables in the image, like +[\$CC]{.title-ref} above, should be executed in [bash -c]. +The present working directory is mounted within the image, which can be +used to make source code available in the Docker container. + +# Cross compilers + +### dockcross/base + +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/base/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/base/latest) +Base image for other toolchain images. From Debian Jessie with GCC, +make, autotools, CMake, Ninja, Git, and Python. + +### dockcross/android-arm + +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/android-arm/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/android-arm/latest) + The Android NDK standalone toolchain for the arm architecture. + +### dockcross/android-arm64 + +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/android-arm64/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/android-arm64/latest) + The Android NDK standalone toolchain for the arm64 architecture. + +### dockcross/android-x86 + +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/android-x86/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/android-x86/latest) + The Android NDK standalone toolchain for the x86 architecture. + +### dockcross/android-x86_64 + +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/android-x86_64/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/android-x86_64/latest) + The Android NDK standalone toolchain for the x86_64 architecture. + +### dockcross/linux-arm64 + +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-arm64/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-arm64/latest) + Cross compiler for the 64-bit ARM platform on Linux, also known as + AArch64. + +### dockcross/linux-arm64-musl + +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-arm64-musl/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-arm64-musl/latest) + Cross compiler for the 64-bit ARM platform on Linux (also known as + AArch64), using [musl](https://www.musl-libc.org/) as base \"libc\". + +### dockcross/linux-armv5 + +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-armv5/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-armv5/latest) + Linux armv5 cross compiler toolchain for legacy devices like the + Parrot AR Drone. + +### dockcross/linux-armv5-musl + +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-armv5-musl/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-armv5-musl/latest) + Linux armv5 cross compiler toolchain using + [musl](https://www.musl-libc.org/) as base \"libc\". + +### dockcross/linux-armv6 + +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-armv6/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-armv6/latest) + Linux ARMv6 cross compiler toolchain for the Raspberry Pi, etc. + +### dockcross/linux-armv6-musl + +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-armv6-musl/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-armv6-musl/latest) + Linux ARMv6 cross compiler toolchain for the Raspberry Pi, etc, + using [musl](https://www.musl-libc.org/) as base \"libc\". + +### dockcross/linux-armv7 + +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-armv7/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-armv7/latest) + Generic Linux armv7 cross compiler toolchain. + +### dockcross/linux-armv7a + +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-armv7a/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-armv7a/latest) + Toolchain configured for ARMv7-A used in Beaglebone Black single + board PC with TI SoC AM3358 on board, Cortex-A8. + +### dockcross/linux-armv7l-musl + +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-armv7l-musl/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-armv7l-musl/latest) + Toolchain configured for ARMv7-L, using + [musl](https://www.musl-libc.org/) as base \"libc\". + +### dockcross/linux-mipsel + +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-mipsel/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-mipsel/latest) + Linux mipsel cross compiler toolchain for little endian MIPS GNU + systems. + +### dockcross/linux-mips + +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-mips/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-mips/latest) + Linux mips cross compiler toolchain for big endian 32-bit hard float + MIPS GNU systems. + +### dockcross/linux-s390x + +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-s390x/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-s390x/latest) + Linux s390x cross compiler toolchain for S390X GNU systems. + +### dockcross/linux-ppc64le + +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-ppc64le/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-ppc64le/latest) + Linux PowerPC 64 little endian cross compiler toolchain for the + POWER8, etc. Important: Due to Issue #430, automatic build of newer + images has been disabled. + +### dockcross/linux-x64 + +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-x64/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-x64/latest) + Linux x86_64 / amd64 compiler. Since the Docker image is natively + x86_64, this is not actually a cross compiler. + +### dockcross/linux-x64-clang + +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-x64-clang/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-x64-clang/latest) + Linux clang x86_64 / amd64 compiler. Since the Docker image is + natively x86_64, this is not actually a cross compiler. + +### dockcross/linux-x86 + +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-x86/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-x86/latest) + Linux i686 cross compiler. + +### dockcross/manylinux2014-x64 + +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/manylinux2014-x64/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/manylinux2014-x64/latest) + Docker [manylinux2014](https://github.com/pypa/manylinux) image for + building Linux x86_64 / amd64 [Python wheel + packages](http://pythonwheels.com/). It includes Python 3.5, 3.6, + 3.7, 3.8, and 3.9. Also has support for the dockcross script, and it + has installations of CMake, Ninja, and + [scikit-build](http://scikit-build.org). For CMake, it sets + [MANYLINUX2014]{.title-ref} to \"TRUE\" in the toolchain. + +### dockcross/manylinux2014-x86 + +: [![manylinux2014-x86-images](https://images.microbadger.com/badges/image/dockcross/manylinux2014-x86.svg)](https://microbadger.com/images/dockcross/manylinux2014-x86) + Docker [manylinux2014](https://github.com/pypa/manylinux) image for + building Linux i686 [Python wheel + packages](http://pythonwheels.com/). It includes Python 3.5, 3.6, + 3.7, 3.8, and 3.9. Also has support for the dockcross script, and it + has installations of CMake, Ninja, and + [scikit-build](http://scikit-build.org). For CMake, it sets + [MANYLINUX2014]{.title-ref} to \"TRUE\" in the toolchain. + +### dockcross/manylinux2014-aarch64 + +: [![manylinux2014-aarch64-images](https://images.microbadger.com/badges/image/dockcross/manylinux2014-aarch64.svg)](https://microbadger.com/images/dockcross/manylinux2014-aarch64) + Docker [manylinux2014](https://github.com/pypa/manylinux) image for + building Linux aarch64 / arm64 [Python wheel + packages](http://pythonwheels.com/). It includes Python 3.5, 3.6, + 3.7, 3.8, and 3.9. Also has support for the dockcross script, and it + has installations of CMake, Ninja, and + [scikit-build](http://scikit-build.org). For CMake, it sets + [MANYLINUX2014]{.title-ref} to \"TRUE\" in the toolchain. + +### dockcross/manylinux2010-x64 + +: [![manylinux2010-x64-images](https://images.microbadger.com/badges/image/dockcross/manylinux2010-x64.svg)](https://microbadger.com/images/dockcross/manylinux2010-x64) + Docker [manylinux2010](https://github.com/pypa/manylinux) image for + building Linux x86_64 / amd64 [Python wheel + packages](http://pythonwheels.com/). It includes Python 2.7, 3.4, + 3.5, 3.6, 3.7 and 3.8. Also has support for the dockcross script, + and it has installations of CMake, Ninja, and + [scikit-build](http://scikit-build.org). For CMake, it sets + [MANYLINUX2010]{.title-ref} to \"TRUE\" in the toolchain. + +### dockcross/manylinux2010-x86 + +: [![manylinux2010-x86-images](https://images.microbadger.com/badges/image/dockcross/manylinux2010-x86.svg)](https://microbadger.com/images/dockcross/manylinux2010-x86) + Docker [manylinux2010](https://github.com/pypa/manylinux) image for + building Linux i686 [Python wheel + packages](http://pythonwheels.com/). It includes Python 2.7, 3.4, + 3.5, 3.6, 3.7 and 3.8. Also has support for the dockcross script, + and it has installations of CMake, Ninja, and + [scikit-build](http://scikit-build.org). For CMake, it sets + [MANYLINUX2010]{.title-ref} to \"TRUE\" in the toolchain. + +### dockcross/manylinux1-x64 + +: [![manylinux1-x64-images](https://images.microbadger.com/badges/image/dockcross/manylinux1-x64.svg)](https://microbadger.com/images/dockcross/manylinux1-x64) + Docker + [manylinux1](https://github.com/pypa/manylinux/tree/manylinux1) + image for building Linux x86_64 / amd64 [Python wheel + packages](http://pythonwheels.com/). It includes Python 2.7, 3.4, + 3.5, 3.6, 3.7 and 3.8. Also has support for the dockcross script, + and it has installations of CMake, Ninja, and + [scikit-build](http://scikit-build.org). For CMake, it sets + [MANYLINUX1]{.title-ref} to \"TRUE\" in the toolchain. + +### dockcross/manylinux1-x86 + +: [![manylinux1-x86-images](https://images.microbadger.com/badges/image/dockcross/manylinux1-x86.svg)](https://microbadger.com/images/dockcross/manylinux1-x86) + Docker + [manylinux1](https://github.com/pypa/manylinux/tree/manylinux1) + image for building Linux i686 [Python wheel + packages](http://pythonwheels.com/). It includes Python 2.7, 3.4, + 3.5, 3.6, 3.7 and 3.8. Also has support for the dockcross script, + and it has installations of CMake, Ninja, and + [scikit-build](http://scikit-build.org). For CMake, it sets + [MANYLINUX1]{.title-ref} to \"TRUE\" in the toolchain. + +### dockcross/web-wasm + +: [![web-wasm-images](https://images.microbadger.com/badges/image/dockcross/web-wasm.svg)](https://microbadger.com/images/dockcross/web-wasm) + The Emscripten WebAssembly/asm.js/JavaScript cross compiler. + +### dockcross/windows-static-x64 + +: [![windows-static-x64-images](https://images.microbadger.com/badges/image/dockcross/windows-static-x64.svg)](https://microbadger.com/images/dockcross/windows-static-x64) + 64-bit Windows cross-compiler based on + [MXE/MinGW-w64](https://mxe.cc/) with win32 threads and static + linking. + +### dockcross/windows-static-x64-posix + +: [![windows-static-x64-posix-images](https://images.microbadger.com/badges/image/dockcross/windows-static-x64-posix.svg)](https://microbadger.com/images/dockcross/windows-static-x64-posix) + 64-bit Windows cross-compiler based on + [MXE/MinGW-w64](https://mxe.cc/) with posix threads and static + linking. + +### dockcross/windows-static-x86 + +: [![windows-static-x86-images](https://images.microbadger.com/badges/image/dockcross/windows-static-x86.svg)](https://microbadger.com/images/dockcross/windows-static-x86) + 32-bit Windows cross-compiler based on + [MXE/MinGW-w64](https://mxe.cc/) with win32 threads and static + linking. + +### dockcross/windows-shared-x64 + +: [![windows-shared-x64-images](https://images.microbadger.com/badges/image/dockcross/windows-shared-x64.svg)](https://microbadger.com/images/dockcross/windows-shared-x64) + 64-bit Windows cross-compiler based on + [MXE/MinGW-w64](https://mxe.cc/) with win32 threads and dynamic + linking. + +### dockcross/windows-shared-x64-posix + +: [![windows-shared-x64-posix-images](https://images.microbadger.com/badges/image/dockcross/windows-shared-x64-posix.svg)](https://microbadger.com/images/dockcross/windows-shared-x64-posix) + 64-bit Windows cross-compiler based on + [MXE/MinGW-w64](https://mxe.cc/) with posix threads and dynamic + linking. + +### dockcross/windows-shared-x86 + +: [![windows-shared-x86-images](https://images.microbadger.com/badges/image/dockcross/windows-shared-x86.svg)](https://microbadger.com/images/dockcross/windows-shared-x86) + 32-bit Windows cross-compiler based on + [MXE/MinGW-w64](https://mxe.cc/) with win32 threads and dynamic + linking. + +# Articles + +- [dockcross: C++ Write Once, Run + Anywhere](https://nbviewer.jupyter.org/format/slides/github/dockcross/cxx-write-once-run-anywhere/blob/master/dockcross_CXX_Write_Once_Run_Anywhere.ipynb#/) +- [Cross-compiling binaries for multiple architectures with + Docker](https://web.archive.org/web/20170912153531/http://blogs.nopcode.org/brainstorm/2016/07/26/cross-compiling-with-docker) + +# Built-in update commands + +A special update command can be executed that will update the source +cross-compiler Docker image or the dockcross script itself. + +- `dockcross [--] command [args...]`: Forces a command to run inside + the container (in case of a name clash with a built-in command), use + `--` before the command. +- `dockcross update-image`: Fetch the latest version of the docker + image. +- `dockcross update-script`: Update the installed dockcross script + with the one bundled in the image. +- `dockcross update`: Update both the docker image, and the dockcross + script. + +# Download all images + +To easily download all images, the convenience target `display_images` +could be used: + + curl https://raw.githubusercontent.com/dockcross/dockcross/master/Makefile -o dockcross-Makefile + for image in $(make -f dockcross-Makefile display_images); do + echo "Pulling dockcross/$image" + docker pull dockcross/$image + done + +# Install all dockcross scripts + +To automatically install in `~/bin` the dockcross scripts for each +images already downloaded, the convenience target `display_images` could +be used: + + curl https://raw.githubusercontent.com/dockcross/dockcross/master/Makefile -o dockcross-Makefile + for image in $(make -f dockcross-Makefile display_images); do + if [[ $(docker images -q dockcross/$image) == "" ]]; then + echo "~/bin/dockcross-$image skipping: image not found locally" + continue + fi + echo "~/bin/dockcross-$image ok" + docker run dockcross/$image > ~/bin/dockcross-$image && \ + chmod u+x ~/bin/dockcross-$image + done + +# Dockcross configuration + +The following environmental variables and command-line options are used. +In all cases, the command-line option overrides the environment +variable. + +## DOCKCROSS_CONFIG / \--config\|-c \ + +This file is sourced, if it exists, before executing the rest of the +dockcross script. + +Default: `~/.dockcross` + +## DOCKCROSS_IMAGE / \--image\|-i \ + +The Docker cross-compiler image to run. + +Default: Image with which the script was created. + +## DOCKCROSS_ARGS / \--args\|-a \ + +Extra arguments to pass to the `docker run` command. Quote the entire +set of args if they contain spaces. + +# Per-project dockcross configuration + +If a shell script named `.dockcross` is found in the current directory +where the dockcross script is started, it is executed before the +dockcross script `command` argument. The shell script is expected to +have a shebang like `#!/usr/bin/env bash`. + +For example, commands like +`git config --global advice.detachedHead false` can be added to this +script. + +# How to extend Dockcross images + +In order to extend Dockcross images with your own commands, one must: + +1. Use `FROM dockcross/`. +2. Set `DEFAULT_DOCKCROSS_IMAGE` to a name of the tag you\'re planning + to use for the image. This tag must then be used during the build + phase, unless you mean to pass the resulting helper script the + `DOCKCROSS_IMAGE` argument. + +An example Dockerfile would be: + + FROM dockcross/linux-armv7 + + ENV DEFAULT_DOCKCROSS_IMAGE my_cool_image + RUN apt-get install nano + +And then in the shell: + + docker build -t my_cool_image . # Builds the dockcross image. + docker run my_cool_image > linux-armv7 # Creates a helper script named linux-armv7. + chmod +x linux-armv7 # Gives the script execution permission. + ./linux-armv7 bash # Runs the helper script with the argument "bash", which starts an interactive container using your extended image. + +# What is the difference between [dockcross]{.title-ref} and [dockbuild]{.title-ref} ? + +The key difference is that +[dockbuild](https://github.com/dockbuild/dockbuild#readme) images do +**NOT** provide a [toolchain +file](https://cmake.org/cmake/help/latest/manual/cmake-toolchains.7.html) +but they use the same method to conveniently isolate the build +environment as +[dockcross](https://github.com/dockcross/dockcross#readme). + +[dockbuild]{.title-ref} is used to build binaries for Linux x86_64 / +amd64 that will work across most Linux distributions. +[dockbuild]{.title-ref} performs a native Linux build where the host +build system is a Linux x86_64 / amd64 Docker image (so that it can be +used for building binaries on any system which can run Docker images) +and the target runtime system is Linux x86_x64 / amd64. + +[dockcross]{.title-ref} is used to build binaries for many different +platforms. [dockcross]{.title-ref} performs a cross compilation where +the host build system is a Linux x86_64 / amd64 Docker image (so that it +can be used for building binaries on any system which can run Docker +images) and the target runtime system varies. + +\-\-- + +Credits go to +[sdt/docker-raspberry-pi-cross-compiler](https://github.com/sdt/docker-raspberry-pi-cross-compiler), +who invented the base of the **dockcross** script. diff --git a/README.rst b/README.rst deleted file mode 100644 index 883b232..0000000 --- a/README.rst +++ /dev/null @@ -1,484 +0,0 @@ -dockcross -========= - -Cross compiling toolchains in Docker images. - -.. image:: https://github.com/dockcross/dockcross/workflows/Dockcross%20CI/badge.svg - :target: https://github.com/dockcross/dockcross/actions?query=branch%3Amaster - - -Features --------- - -* Pre-built and configured toolchains for cross compiling. -* Most images also contain an emulator for the target system. -* Clean separation of build tools, source code, and build artifacts. -* Commands in the container are run as the calling user, so that any created files have the expected ownership, (i.e. not root). -* Make variables (`CC`, `LD` etc) are set to point to the appropriate tools in the container. -* Recent `CMake `_ and ninja are precompiled. -* `Conan.io `_ can be used as a package manager. -* Toolchain files configured for CMake. -* Current directory is mounted as the container's workdir, ``/work``. -* Works with the `Docker for Mac `_ and `Docker for Windows `_. -* Support using alternative container executor by setting `OCI_EXE` environment variable. By default, it searches for `docker` and [`podman`](https://podman.io/) executable. - -Examples --------- - -1. ``dockcross make``: Build the *Makefile* in the current directory. -2. ``dockcross cmake -Bbuild -H. -GNinja``: Run CMake with a build directory - ``./build`` for a *CMakeLists.txt* file in the current directory and generate - ``ninja`` build configuration files. -3. ``dockcross ninja -Cbuild``: Run ninja in the ``./build`` directory. -4. ``dockcross bash -c '$CC test/C/hello.c -o hello'``: Build the *hello.c* file - with the compiler identified with the ``CC`` environmental variable in the - build environment. -5. ``dockcross bash``: Run an interactive shell in the build environment. - -Note that commands are executed verbatim. If any shell processing for -environment variable expansion or redirection is required, please use -`bash -c 'command args...'`. - -Installation ------------- - -This image does not need to be run manually. Instead, there is a helper script -to execute build commands on source code existing on the local host filesystem. This -script is bundled with the image. - -To install the helper script, run one of the images with no arguments, and -redirect the output to a file:: - - docker run --rm CROSS_COMPILER_IMAGE_NAME > ./dockcross - chmod +x ./dockcross - mv ./dockcross ~/bin/ - -Where `CROSS_COMPILER_IMAGE_NAME` is the name of the cross-compiler toolchain -Docker instance, e.g. `dockcross/linux-armv7`. - -Only 64-bit x86_64 images are provided; a 64-bit x86_64 host system is required. - -Usage ------ - -For the impatient, here's how to compile a hello world for armv7:: - - cd ~/src/dockcross - docker run --rm dockcross/linux-armv7 > ./dockcross-linux-armv7 - chmod +x ./dockcross-linux-armv7 - ./dockcross-linux-armv7 bash -c '$CC test/C/hello.c -o hello_arm' - -Note how invoking any toolchain command (make, gcc, etc.) is just a matter of prepending the **dockcross** script on the commandline:: - - ./dockcross-linux-armv7 [command] [args...] - -The dockcross script will execute the given command-line inside the container, -along with all arguments passed after the command. Commands that evaluate -environmental variables in the image, like `$CC` above, should be executed in -`bash -c`. The present working directory is mounted within the image, which -can be used to make source code available in the Docker container. - -Cross compilers ---------------- - -.. |base-images| image:: https://images.microbadger.com/badges/image/dockcross/base.svg - :target: https://microbadger.com/images/dockcross/base - -dockcross/base - |base-images| Base image for other toolchain images. From Debian Jessie with GCC, - make, autotools, CMake, Ninja, Git, and Python. - - -.. |android-arm-images| image:: https://images.microbadger.com/badges/image/dockcross/android-arm.svg - :target: https://microbadger.com/images/dockcross/android-arm - -dockcross/android-arm - |android-arm-images| The Android NDK standalone toolchain for the arm - architecture. - - -.. |android-arm64-images| image:: https://images.microbadger.com/badges/image/dockcross/android-arm64.svg - :target: https://microbadger.com/images/dockcross/android-arm64 - -dockcross/android-arm64 - |android-arm64-images| The Android NDK standalone toolchain for the arm64 - architecture. - - -.. |android-x86-images| image:: https://images.microbadger.com/badges/image/dockcross/android-x86.svg - :target: https://microbadger.com/images/dockcross/android-x86 - -dockcross/android-x86 - |android-x86-images| The Android NDK standalone toolchain for the x86 - architecture. - - -.. |android-x86_64-images| image:: https://images.microbadger.com/badges/image/dockcross/android-x86_64.svg - :target: https://microbadger.com/images/dockcross/android-x86_64 - -dockcross/android-x86_64 - |android-x86_64-images| The Android NDK standalone toolchain for the x86_64 - architecture. - - -.. |linux-arm64-images| image:: https://images.microbadger.com/badges/image/dockcross/linux-arm64.svg - :target: https://microbadger.com/images/dockcross/linux-arm64 - -dockcross/linux-arm64 - |linux-arm64-images| Cross compiler for the 64-bit ARM platform on Linux, - also known as AArch64. - - -.. |linux-arm64-musl-images| image:: https://images.microbadger.com/badges/image/dockcross/linux-arm64-musl.svg - :target: https://microbadger.com/images/dockcross/linux-arm64-musl - -dockcross/linux-arm64-musl - |linux-arm64-musl-images| Cross compiler for the 64-bit ARM platform on Linux (also known as AArch64), using `musl `_ as base "libc". - - -.. |linux-armv5-images| image:: https://images.microbadger.com/badges/image/dockcross/linux-armv5.svg - :target: https://microbadger.com/images/dockcross/linux-armv5 - -dockcross/linux-armv5 - |linux-armv5-images| Linux armv5 cross compiler toolchain for legacy devices - like the Parrot AR Drone. - - -.. |linux-armv5-musl-images| image:: https://images.microbadger.com/badges/image/dockcross/linux-armv5-musl.svg - :target: https://microbadger.com/images/dockcross/linux-armv5-musl - -dockcross/linux-armv5-musl - |linux-armv5-musl-images| Linux armv5 cross compiler toolchain using `musl `_ as base "libc". - - -.. |linux-armv6-images| image:: https://images.microbadger.com/badges/image/dockcross/linux-armv6.svg - :target: https://microbadger.com/images/dockcross/linux-armv6 - -dockcross/linux-armv6 - |linux-armv6-images| Linux ARMv6 cross compiler toolchain for the Raspberry - Pi, etc. - - -.. |linux-armv6-musl-images| image:: https://images.microbadger.com/badges/image/dockcross/linux-armv6-musl.svg - :target: https://microbadger.com/images/dockcross/linux-armv6-musl - -dockcross/linux-armv6-musl - |linux-armv6-musl-images| Linux ARMv6 cross compiler toolchain for the Raspberry Pi, etc, using `musl `_ as base "libc". - - -.. |linux-armv7-images| image:: https://images.microbadger.com/badges/image/dockcross/linux-armv7.svg - :target: https://microbadger.com/images/dockcross/linux-armv7 - -dockcross/linux-armv7 - |linux-armv7-images| Generic Linux armv7 cross compiler toolchain. - - -.. |linux-armv7a-images| image:: https://images.microbadger.com/badges/image/dockcross/linux-armv7a.svg - :target: https://microbadger.com/images/dockcross/linux-armv7a - -dockcross/linux-armv7a - |linux-armv7a-images| Toolchain configured for ARMv7-A used in Beaglebone Black single board PC with TI SoC AM3358 on board, Cortex-A8. - - -.. |linux-armv7l-musl-images| image:: https://images.microbadger.com/badges/image/dockcross/linux-armv7l-musl.svg - :target: https://microbadger.com/images/dockcross/linux-armv7l-musl - -dockcross/linux-armv7l-musl - |linux-armv7l-musl-images| Toolchain configured for ARMv7-L, using `musl `_ as base "libc". - - -.. |linux-mipsel-images| image:: https://images.microbadger.com/badges/image/dockcross/linux-mipsel.svg - :target: https://microbadger.com/images/dockcross/linux-mipsel - -dockcross/linux-mipsel - |linux-mipsel-images| Linux mipsel cross compiler toolchain for little endian MIPS GNU systems. - - -.. |linux-mips-images| image:: https://images.microbadger.com/badges/image/dockcross/linux-mips.svg - :target: https://microbadger.com/images/dockcross/linux-mips - -dockcross/linux-mips - |linux-mips-images| Linux mips cross compiler toolchain for big endian 32-bit hard float MIPS GNU systems. - - -.. |linux-s390x-images| image:: https://images.microbadger.com/badges/image/dockcross/linux-s390x.svg - :target: https://microbadger.com/images/dockcross/linux-s390x - -dockcross/linux-s390x - |linux-s390x-images| Linux s390x cross compiler toolchain for S390X GNU systems. - - -.. |linux-ppc64le-images| image:: https://images.microbadger.com/badges/image/dockcross/linux-ppc64le.svg - :target: https://microbadger.com/images/dockcross/linux-ppc64le - -dockcross/linux-ppc64le - |linux-ppc64le-images| Linux PowerPC 64 little endian cross compiler - toolchain for the POWER8, etc. Important: Due to Issue #430, automatic build of newer images has been disabled. - - -.. |linux-x64-images| image:: https://images.microbadger.com/badges/image/dockcross/linux-x64.svg - :target: https://microbadger.com/images/dockcross/linux-x64 - -dockcross/linux-x64 - |linux-x64-images| Linux x86_64 / amd64 compiler. Since the Docker image is - natively x86_64, this is not actually a cross compiler. - -.. |linux-x64-clang-images| image:: https://images.microbadger.com/badges/image/dockcross/linux-x64-clang.svg - :target: https://microbadger.com/images/dockcross/linux-x64-clang - -dockcross/linux-x64-clang - |linux-x64-clang-images| Linux clang x86_64 / amd64 compiler. Since the Docker image is - natively x86_64, this is not actually a cross compiler. - -.. |linux-x86-images| image:: https://images.microbadger.com/badges/image/dockcross/linux-x86.svg - :target: https://microbadger.com/images/dockcross/linux-x86 - -dockcross/linux-x86 - |linux-x86-images| Linux i686 cross compiler. - - -.. |manylinux2014-x64-images| image:: https://images.microbadger.com/badges/image/dockcross/manylinux2014-x64.svg - :target: https://microbadger.com/images/dockcross/manylinux2014-x64 - -dockcross/manylinux2014-x64 - |manylinux2014-x64-images| Docker `manylinux2014 `_ image for building Linux x86_64 / amd64 `Python wheel packages `_. It includes Python 3.5, 3.6, 3.7, 3.8, and 3.9. - Also has support for the dockcross script, and it has installations of CMake, Ninja, and `scikit-build `_. For CMake, it sets `MANYLINUX2014` to "TRUE" in the toolchain. - - -.. |manylinux2014-x86-images| image:: https://images.microbadger.com/badges/image/dockcross/manylinux2014-x86.svg - :target: https://microbadger.com/images/dockcross/manylinux2014-x86 - -dockcross/manylinux2014-x86 - |manylinux2014-x86-images| Docker `manylinux2014 `_ image for building Linux i686 `Python wheel packages `_. It includes Python 3.5, 3.6, 3.7, 3.8, and 3.9. - Also has support for the dockcross script, and it has installations of CMake, Ninja, and `scikit-build `_. For CMake, it sets `MANYLINUX2014` to "TRUE" in the toolchain. - - -.. |manylinux2014-aarch64-images| image:: https://images.microbadger.com/badges/image/dockcross/manylinux2014-aarch64.svg - :target: https://microbadger.com/images/dockcross/manylinux2014-aarch64 - -dockcross/manylinux2014-aarch64 - |manylinux2014-aarch64-images| Docker `manylinux2014 `_ image for building Linux aarch64 / arm64 `Python wheel packages `_. It includes Python 3.5, 3.6, 3.7, 3.8, and 3.9. - Also has support for the dockcross script, and it has installations of CMake, Ninja, and `scikit-build `_. For CMake, it sets `MANYLINUX2014` to "TRUE" in the toolchain. - - -.. |manylinux2010-x64-images| image:: https://images.microbadger.com/badges/image/dockcross/manylinux2010-x64.svg - :target: https://microbadger.com/images/dockcross/manylinux2010-x64 - -dockcross/manylinux2010-x64 - |manylinux2010-x64-images| Docker `manylinux2010 `_ image for building Linux x86_64 / amd64 `Python wheel packages `_. It includes Python 2.7, 3.4, 3.5, 3.6, 3.7 and 3.8. - Also has support for the dockcross script, and it has installations of CMake, Ninja, and `scikit-build `_. For CMake, it sets `MANYLINUX2010` to "TRUE" in the toolchain. - - -.. |manylinux2010-x86-images| image:: https://images.microbadger.com/badges/image/dockcross/manylinux2010-x86.svg - :target: https://microbadger.com/images/dockcross/manylinux2010-x86 - -dockcross/manylinux2010-x86 - |manylinux2010-x86-images| Docker `manylinux2010 `_ image for building Linux i686 `Python wheel packages `_. It includes Python 2.7, 3.4, 3.5, 3.6, 3.7 and 3.8. - Also has support for the dockcross script, and it has installations of CMake, Ninja, and `scikit-build `_. For CMake, it sets `MANYLINUX2010` to "TRUE" in the toolchain. - - -.. |manylinux1-x64-images| image:: https://images.microbadger.com/badges/image/dockcross/manylinux1-x64.svg - :target: https://microbadger.com/images/dockcross/manylinux1-x64 - -dockcross/manylinux1-x64 - |manylinux1-x64-images| Docker `manylinux1 `_ image for building Linux x86_64 / amd64 `Python wheel packages `_. It includes Python 2.7, 3.4, 3.5, 3.6, 3.7 and 3.8. - Also has support for the dockcross script, and it has installations of CMake, Ninja, and `scikit-build `_. For CMake, it sets `MANYLINUX1` to "TRUE" in the toolchain. - - -.. |manylinux1-x86-images| image:: https://images.microbadger.com/badges/image/dockcross/manylinux1-x86.svg - :target: https://microbadger.com/images/dockcross/manylinux1-x86 - -dockcross/manylinux1-x86 - |manylinux1-x86-images| Docker `manylinux1 `_ image for building Linux i686 `Python wheel packages `_. It includes Python 2.7, 3.4, 3.5, 3.6, 3.7 and 3.8. - Also has support for the dockcross script, and it has installations of CMake, Ninja, and `scikit-build `_. For CMake, it sets `MANYLINUX1` to "TRUE" in the toolchain. - - -.. |web-wasm-images| image:: https://images.microbadger.com/badges/image/dockcross/web-wasm.svg - :target: https://microbadger.com/images/dockcross/web-wasm - -dockcross/web-wasm - |web-wasm-images| The Emscripten WebAssembly/asm.js/JavaScript cross compiler. - - -.. |windows-static-x64-images| image:: https://images.microbadger.com/badges/image/dockcross/windows-static-x64.svg - :target: https://microbadger.com/images/dockcross/windows-static-x64 - -dockcross/windows-static-x64 - |windows-static-x64-images| 64-bit Windows cross-compiler based on `MXE/MinGW-w64`_ with win32 threads and static linking. - - -.. |windows-static-x64-posix-images| image:: https://images.microbadger.com/badges/image/dockcross/windows-static-x64-posix.svg - :target: https://microbadger.com/images/dockcross/windows-static-x64-posix - -dockcross/windows-static-x64-posix - |windows-static-x64-posix-images| 64-bit Windows cross-compiler based on `MXE/MinGW-w64`_ with posix threads and static linking. - - -.. |windows-static-x86-images| image:: https://images.microbadger.com/badges/image/dockcross/windows-static-x86.svg - :target: https://microbadger.com/images/dockcross/windows-static-x86 - -dockcross/windows-static-x86 - |windows-static-x86-images| 32-bit Windows cross-compiler based on `MXE/MinGW-w64`_ with win32 threads and static linking. - -.. |windows-shared-x64-images| image:: https://images.microbadger.com/badges/image/dockcross/windows-shared-x64.svg - :target: https://microbadger.com/images/dockcross/windows-shared-x64 - -dockcross/windows-shared-x64 - |windows-shared-x64-images| 64-bit Windows cross-compiler based on `MXE/MinGW-w64`_ with win32 threads and dynamic linking. - - -.. |windows-shared-x64-posix-images| image:: https://images.microbadger.com/badges/image/dockcross/windows-shared-x64-posix.svg - :target: https://microbadger.com/images/dockcross/windows-shared-x64-posix - -dockcross/windows-shared-x64-posix - |windows-shared-x64-posix-images| 64-bit Windows cross-compiler based on `MXE/MinGW-w64`_ with posix threads and dynamic linking. - - -.. |windows-shared-x86-images| image:: https://images.microbadger.com/badges/image/dockcross/windows-shared-x86.svg - :target: https://microbadger.com/images/dockcross/windows-shared-x86 - -dockcross/windows-shared-x86 - |windows-shared-x86-images| 32-bit Windows cross-compiler based on `MXE/MinGW-w64`_ with win32 threads and dynamic linking. - - -Articles --------- - -- `dockcross: C++ Write Once, Run Anywhere - `_ -- `Cross-compiling binaries for multiple architectures with Docker - `_ - - -Built-in update commands ------------------------- - -A special update command can be executed that will update the -source cross-compiler Docker image or the dockcross script itself. - -- ``dockcross [--] command [args...]``: Forces a command to run inside the container (in case of a name clash with a built-in command), use ``--`` before the command. -- ``dockcross update-image``: Fetch the latest version of the docker image. -- ``dockcross update-script``: Update the installed dockcross script with the one bundled in the image. -- ``dockcross update``: Update both the docker image, and the dockcross script. - - -Download all images -------------------- - -To easily download all images, the convenience target ``display_images`` could be used:: - - curl https://raw.githubusercontent.com/dockcross/dockcross/master/Makefile -o dockcross-Makefile - for image in $(make -f dockcross-Makefile display_images); do - echo "Pulling dockcross/$image" - docker pull dockcross/$image - done - -Install all dockcross scripts ------------------------------ - -To automatically install in ``~/bin`` the dockcross scripts for each images already downloaded, the -convenience target ``display_images`` could be used:: - - curl https://raw.githubusercontent.com/dockcross/dockcross/master/Makefile -o dockcross-Makefile - for image in $(make -f dockcross-Makefile display_images); do - if [[ $(docker images -q dockcross/$image) == "" ]]; then - echo "~/bin/dockcross-$image skipping: image not found locally" - continue - fi - echo "~/bin/dockcross-$image ok" - docker run dockcross/$image > ~/bin/dockcross-$image && \ - chmod u+x ~/bin/dockcross-$image - done - - -Dockcross configuration ------------------------ - -The following environmental variables and command-line options are used. In -all cases, the command-line option overrides the environment variable. - -DOCKCROSS_CONFIG / --config|-c -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -This file is sourced, if it exists, before executing the rest of the dockcross -script. - -Default: ``~/.dockcross`` - -DOCKCROSS_IMAGE / --image|-i -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -The Docker cross-compiler image to run. - -Default: Image with which the script was created. - -DOCKCROSS_ARGS / --args|-a -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Extra arguments to pass to the ``docker run`` command. Quote the entire set of -args if they contain spaces. - - -Per-project dockcross configuration ------------------------------------ - -If a shell script named ``.dockcross`` is found in the current directory where -the dockcross script is started, it is executed before the dockcross script -``command`` argument. The shell script is expected to have a shebang like -``#!/usr/bin/env bash``. - -For example, commands like ``git config --global advice.detachedHead false`` can -be added to this script. - - -How to extend Dockcross images ------------------------------- -In order to extend Dockcross images with your own commands, one must: - -1. Use ``FROM dockcross/``. -2. Set ``DEFAULT_DOCKCROSS_IMAGE`` to a name of the tag you're planning to use for the image. This tag must then be used during the build phase, unless you mean to pass the resulting helper script the ``DOCKCROSS_IMAGE`` argument. - -An example Dockerfile would be:: - - FROM dockcross/linux-armv7 - - ENV DEFAULT_DOCKCROSS_IMAGE my_cool_image - RUN apt-get install nano - -And then in the shell:: - - docker build -t my_cool_image . # Builds the dockcross image. - docker run my_cool_image > linux-armv7 # Creates a helper script named linux-armv7. - chmod +x linux-armv7 # Gives the script execution permission. - ./linux-armv7 bash # Runs the helper script with the argument "bash", which starts an interactive container using your extended image. - - -What is the difference between `dockcross` and `dockbuild` ? ------------------------------------------------------------- - -The key difference is that `dockbuild -`_ images do **NOT** provide -a `toolchain file -`_ -but they use the same method -to conveniently isolate the build environment as `dockcross -`_. - -`dockbuild` is used to build binaries for Linux x86_64 / amd64 that will work -across most Linux distributions. `dockbuild` performs a native Linux build -where the host build system is a Linux x86_64 / amd64 Docker image (so that it -can be used for building binaries on any system which can run Docker images) -and the target runtime system is Linux x86_x64 / amd64. - -`dockcross` is used to build binaries for many different platforms. -`dockcross` performs a cross compilation where the host build system is a -Linux x86_64 / amd64 Docker image (so that it can be used for building -binaries on any system which can run Docker images) and the target runtime -system varies. - - ---- - -Credits go to `sdt/docker-raspberry-pi-cross-compiler `_, who invented the base of the **dockcross** script. - -.. _MXE/MinGW-w64: https://mxe.cc/ From 0a00d9473198ea1708ee46fa7e5c226c5ae2d64e Mon Sep 17 00:00:00 2001 From: Bensuperpc Date: Tue, 29 Jun 2021 17:03:12 +0200 Subject: [PATCH 2/5] Update README Add docker pull badge Signed-off-by: Bensuperpc --- README.md | 70 +++++++++++++++++++++++++++---------------------------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/README.md b/README.md index 131c1ed..ec17581 100644 --- a/README.md +++ b/README.md @@ -88,126 +88,126 @@ used to make source code available in the Docker container. ### dockcross/base -![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/base/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/base/latest) +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/base/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/base/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/base) ![Docker Stars](https://img.shields.io/docker/stars/dockcross/base) Base image for other toolchain images. From Debian Jessie with GCC, make, autotools, CMake, Ninja, Git, and Python. ### dockcross/android-arm -![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/android-arm/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/android-arm/latest) +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/android-arm/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/android-arm/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/android-arm) The Android NDK standalone toolchain for the arm architecture. ### dockcross/android-arm64 -![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/android-arm64/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/android-arm64/latest) +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/android-arm64/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/android-arm64/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/android-arm64) The Android NDK standalone toolchain for the arm64 architecture. ### dockcross/android-x86 -![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/android-x86/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/android-x86/latest) +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/android-x86/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/android-x86/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/android-x86) The Android NDK standalone toolchain for the x86 architecture. ### dockcross/android-x86_64 -![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/android-x86_64/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/android-x86_64/latest) +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/android-x86_64/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/android-x86_64/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/android-x86_64) The Android NDK standalone toolchain for the x86_64 architecture. ### dockcross/linux-arm64 -![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-arm64/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-arm64/latest) +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-arm64/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-arm64/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-arm64) Cross compiler for the 64-bit ARM platform on Linux, also known as AArch64. ### dockcross/linux-arm64-musl -![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-arm64-musl/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-arm64-musl/latest) +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-arm64-musl/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-arm64-musl/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-arm64-musl) Cross compiler for the 64-bit ARM platform on Linux (also known as AArch64), using [musl](https://www.musl-libc.org/) as base \"libc\". ### dockcross/linux-armv5 -![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-armv5/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-armv5/latest) +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-armv5/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-armv5/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-armv5) Linux armv5 cross compiler toolchain for legacy devices like the Parrot AR Drone. ### dockcross/linux-armv5-musl -![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-armv5-musl/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-armv5-musl/latest) +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-armv5-musl/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-armv5-musl/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-armv5-musl) Linux armv5 cross compiler toolchain using [musl](https://www.musl-libc.org/) as base \"libc\". ### dockcross/linux-armv6 -![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-armv6/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-armv6/latest) +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-armv6/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-armv6/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-armv6) Linux ARMv6 cross compiler toolchain for the Raspberry Pi, etc. ### dockcross/linux-armv6-musl -![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-armv6-musl/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-armv6-musl/latest) +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-armv6-musl/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-armv6-musl/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-armv6-musl) Linux ARMv6 cross compiler toolchain for the Raspberry Pi, etc, using [musl](https://www.musl-libc.org/) as base \"libc\". ### dockcross/linux-armv7 -![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-armv7/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-armv7/latest) +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-armv7/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-armv7/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-armv7) Generic Linux armv7 cross compiler toolchain. ### dockcross/linux-armv7a -![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-armv7a/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-armv7a/latest) +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-armv7a/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-armv7a/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-armv7a) Toolchain configured for ARMv7-A used in Beaglebone Black single board PC with TI SoC AM3358 on board, Cortex-A8. ### dockcross/linux-armv7l-musl -![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-armv7l-musl/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-armv7l-musl/latest) +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-armv7l-musl/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-armv7l-musl/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-armv7l-musl) Toolchain configured for ARMv7-L, using [musl](https://www.musl-libc.org/) as base \"libc\". ### dockcross/linux-mipsel -![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-mipsel/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-mipsel/latest) +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-mipsel/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-mipsel/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-mipsel) Linux mipsel cross compiler toolchain for little endian MIPS GNU systems. ### dockcross/linux-mips -![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-mips/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-mips/latest) +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-mips/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-mips/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-mips) Linux mips cross compiler toolchain for big endian 32-bit hard float MIPS GNU systems. ### dockcross/linux-s390x -![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-s390x/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-s390x/latest) +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-s390x/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-s390x/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-s390x) Linux s390x cross compiler toolchain for S390X GNU systems. ### dockcross/linux-ppc64le -![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-ppc64le/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-ppc64le/latest) +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-ppc64le/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-ppc64le/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-ppc64le) Linux PowerPC 64 little endian cross compiler toolchain for the POWER8, etc. Important: Due to Issue #430, automatic build of newer images has been disabled. ### dockcross/linux-x64 -![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-x64/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-x64/latest) +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-x64/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-x64/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-x64) Linux x86_64 / amd64 compiler. Since the Docker image is natively x86_64, this is not actually a cross compiler. ### dockcross/linux-x64-clang -![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-x64-clang/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-x64-clang/latest) +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-x64-clang/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-x64-clang/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-x64-clang) Linux clang x86_64 / amd64 compiler. Since the Docker image is natively x86_64, this is not actually a cross compiler. ### dockcross/linux-x86 -![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-x86/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-x86/latest) +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-x86/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-x86/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-x86) Linux i686 cross compiler. ### dockcross/manylinux2014-x64 -![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/manylinux2014-x64/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/manylinux2014-x64/latest) +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/manylinux2014-x64/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/manylinux2014-x64/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/manylinux2014-x64) Docker [manylinux2014](https://github.com/pypa/manylinux) image for building Linux x86_64 / amd64 [Python wheel packages](http://pythonwheels.com/). It includes Python 3.5, 3.6, @@ -218,7 +218,7 @@ make, autotools, CMake, Ninja, Git, and Python. ### dockcross/manylinux2014-x86 -: [![manylinux2014-x86-images](https://images.microbadger.com/badges/image/dockcross/manylinux2014-x86.svg)](https://microbadger.com/images/dockcross/manylinux2014-x86) +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/manylinux2014-x86/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/manylinux2014-x86/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/manylinux2014-x86) Docker [manylinux2014](https://github.com/pypa/manylinux) image for building Linux i686 [Python wheel packages](http://pythonwheels.com/). It includes Python 3.5, 3.6, @@ -229,7 +229,7 @@ make, autotools, CMake, Ninja, Git, and Python. ### dockcross/manylinux2014-aarch64 -: [![manylinux2014-aarch64-images](https://images.microbadger.com/badges/image/dockcross/manylinux2014-aarch64.svg)](https://microbadger.com/images/dockcross/manylinux2014-aarch64) +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/manylinux2014-aarch64/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/manylinux2014-aarch64/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/manylinux2014-aarch64) Docker [manylinux2014](https://github.com/pypa/manylinux) image for building Linux aarch64 / arm64 [Python wheel packages](http://pythonwheels.com/). It includes Python 3.5, 3.6, @@ -240,7 +240,7 @@ make, autotools, CMake, Ninja, Git, and Python. ### dockcross/manylinux2010-x64 -: [![manylinux2010-x64-images](https://images.microbadger.com/badges/image/dockcross/manylinux2010-x64.svg)](https://microbadger.com/images/dockcross/manylinux2010-x64) +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/manylinux2010-x64/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/manylinux2010-x64/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/manylinux2010-x64) Docker [manylinux2010](https://github.com/pypa/manylinux) image for building Linux x86_64 / amd64 [Python wheel packages](http://pythonwheels.com/). It includes Python 2.7, 3.4, @@ -251,7 +251,7 @@ make, autotools, CMake, Ninja, Git, and Python. ### dockcross/manylinux2010-x86 -: [![manylinux2010-x86-images](https://images.microbadger.com/badges/image/dockcross/manylinux2010-x86.svg)](https://microbadger.com/images/dockcross/manylinux2010-x86) +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/manylinux2010-x86/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/manylinux2010-x86/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/manylinux2010-x86) Docker [manylinux2010](https://github.com/pypa/manylinux) image for building Linux i686 [Python wheel packages](http://pythonwheels.com/). It includes Python 2.7, 3.4, @@ -262,7 +262,7 @@ make, autotools, CMake, Ninja, Git, and Python. ### dockcross/manylinux1-x64 -: [![manylinux1-x64-images](https://images.microbadger.com/badges/image/dockcross/manylinux1-x64.svg)](https://microbadger.com/images/dockcross/manylinux1-x64) +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/manylinux1-x64/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/manylinux1-x64/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/manylinux1-x64) Docker [manylinux1](https://github.com/pypa/manylinux/tree/manylinux1) image for building Linux x86_64 / amd64 [Python wheel @@ -274,7 +274,7 @@ make, autotools, CMake, Ninja, Git, and Python. ### dockcross/manylinux1-x86 -: [![manylinux1-x86-images](https://images.microbadger.com/badges/image/dockcross/manylinux1-x86.svg)](https://microbadger.com/images/dockcross/manylinux1-x86) +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/manylinux1-x86/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/manylinux1-x86/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/manylinux1-x86) Docker [manylinux1](https://github.com/pypa/manylinux/tree/manylinux1) image for building Linux i686 [Python wheel @@ -286,47 +286,47 @@ make, autotools, CMake, Ninja, Git, and Python. ### dockcross/web-wasm -: [![web-wasm-images](https://images.microbadger.com/badges/image/dockcross/web-wasm.svg)](https://microbadger.com/images/dockcross/web-wasm) +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/web-wasm/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/web-wasm/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/web-wasm) The Emscripten WebAssembly/asm.js/JavaScript cross compiler. ### dockcross/windows-static-x64 -: [![windows-static-x64-images](https://images.microbadger.com/badges/image/dockcross/windows-static-x64.svg)](https://microbadger.com/images/dockcross/windows-static-x64) +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/windows-static-x64/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/windows-static-x64/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/windows-static-x64) 64-bit Windows cross-compiler based on [MXE/MinGW-w64](https://mxe.cc/) with win32 threads and static linking. ### dockcross/windows-static-x64-posix -: [![windows-static-x64-posix-images](https://images.microbadger.com/badges/image/dockcross/windows-static-x64-posix.svg)](https://microbadger.com/images/dockcross/windows-static-x64-posix) +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/windows-static-x64-posix/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/windows-static-x64-posix/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/windows-static-x64-posix) 64-bit Windows cross-compiler based on [MXE/MinGW-w64](https://mxe.cc/) with posix threads and static linking. ### dockcross/windows-static-x86 -: [![windows-static-x86-images](https://images.microbadger.com/badges/image/dockcross/windows-static-x86.svg)](https://microbadger.com/images/dockcross/windows-static-x86) +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/windows-static-x86/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/windows-static-x86/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/windows-static-x86) 32-bit Windows cross-compiler based on [MXE/MinGW-w64](https://mxe.cc/) with win32 threads and static linking. ### dockcross/windows-shared-x64 -: [![windows-shared-x64-images](https://images.microbadger.com/badges/image/dockcross/windows-shared-x64.svg)](https://microbadger.com/images/dockcross/windows-shared-x64) +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/windows-shared-x64/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/windows-shared-x64/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/windows-shared-x64) 64-bit Windows cross-compiler based on [MXE/MinGW-w64](https://mxe.cc/) with win32 threads and dynamic linking. ### dockcross/windows-shared-x64-posix -: [![windows-shared-x64-posix-images](https://images.microbadger.com/badges/image/dockcross/windows-shared-x64-posix.svg)](https://microbadger.com/images/dockcross/windows-shared-x64-posix) +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/windows-shared-x64-posix/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/windows-shared-x64-posix/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/windows-shared-x64-posix) 64-bit Windows cross-compiler based on [MXE/MinGW-w64](https://mxe.cc/) with posix threads and dynamic linking. ### dockcross/windows-shared-x86 -: [![windows-shared-x86-images](https://images.microbadger.com/badges/image/dockcross/windows-shared-x86.svg)](https://microbadger.com/images/dockcross/windows-shared-x86) +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/windows-shared-x86/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/windows-shared-x86/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/windows-shared-x86) 32-bit Windows cross-compiler based on [MXE/MinGW-w64](https://mxe.cc/) with win32 threads and dynamic linking. From 678140b0ace7bf30653555758a9cc0bf3e6c3320 Mon Sep 17 00:00:00 2001 From: Bensuperpc Date: Tue, 29 Jun 2021 17:30:05 +0200 Subject: [PATCH 3/5] Update README Fix text size Signed-off-by: Bensuperpc --- README.md | 277 +++++++++++++++++++++++++++++------------------------- 1 file changed, 150 insertions(+), 127 deletions(-) diff --git a/README.md b/README.md index ec17581..a8e7b4e 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,12 @@ ---- -title: dockcross ---- + +# dockcross + Cross compiling toolchains in Docker images. [![image](https://github.com/dockcross/dockcross/workflows/Dockcross%20CI/badge.svg)](https://github.com/dockcross/dockcross/actions?query=branch%3Amaster) -# Features +## Features - Pre-built and configured toolchains for cross compiling. - Most images also contain an emulator for the target system. @@ -27,7 +27,7 @@ Cross compiling toolchains in Docker images. for [docker]{.title-ref} and \[[podman]{.title-ref}\]() executable. -# Examples +## Examples 1. `dockcross make`: Build the *Makefile* in the current directory. 2. `dockcross cmake -Bbuild -H. -GNinja`: Run CMake with a build @@ -43,7 +43,7 @@ Note that commands are executed verbatim. If any shell processing for environment variable expansion or redirection is required, please use [bash -c \'command args\...\']{.title-ref}. -# Installation +## Installation This image does not need to be run manually. Instead, there is a helper script to execute build commands on source code existing on the local @@ -63,7 +63,7 @@ cross-compiler toolchain Docker instance, e.g. Only 64-bit x86_64 images are provided; a 64-bit x86_64 host system is required. -# Usage +## Usage For the impatient, here\'s how to compile a hello world for armv7: @@ -84,261 +84,284 @@ that evaluate environmental variables in the image, like The present working directory is mounted within the image, which can be used to make source code available in the Docker container. -# Cross compilers +## Cross compilers ### dockcross/base ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/base/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/base/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/base) ![Docker Stars](https://img.shields.io/docker/stars/dockcross/base) + Base image for other toolchain images. From Debian Jessie with GCC, make, autotools, CMake, Ninja, Git, and Python. ### dockcross/android-arm ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/android-arm/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/android-arm/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/android-arm) - The Android NDK standalone toolchain for the arm architecture. + +The Android NDK standalone toolchain for the arm architecture. ### dockcross/android-arm64 ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/android-arm64/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/android-arm64/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/android-arm64) - The Android NDK standalone toolchain for the arm64 architecture. + +The Android NDK standalone toolchain for the arm64 architecture. ### dockcross/android-x86 ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/android-x86/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/android-x86/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/android-x86) - The Android NDK standalone toolchain for the x86 architecture. + +The Android NDK standalone toolchain for the x86 architecture. ### dockcross/android-x86_64 ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/android-x86_64/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/android-x86_64/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/android-x86_64) - The Android NDK standalone toolchain for the x86_64 architecture. + +The Android NDK standalone toolchain for the x86_64 architecture. ### dockcross/linux-arm64 ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-arm64/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-arm64/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-arm64) - Cross compiler for the 64-bit ARM platform on Linux, also known as - AArch64. + +Cross compiler for the 64-bit ARM platform on Linux, also known as +AArch64. ### dockcross/linux-arm64-musl ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-arm64-musl/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-arm64-musl/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-arm64-musl) - Cross compiler for the 64-bit ARM platform on Linux (also known as - AArch64), using [musl](https://www.musl-libc.org/) as base \"libc\". + +Cross compiler for the 64-bit ARM platform on Linux (also known as +AArch64), using [musl](https://www.musl-libc.org/) as base \"libc\". ### dockcross/linux-armv5 ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-armv5/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-armv5/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-armv5) - Linux armv5 cross compiler toolchain for legacy devices like the - Parrot AR Drone. + +Linux armv5 cross compiler toolchain for legacy devices like the +Parrot AR Drone. ### dockcross/linux-armv5-musl ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-armv5-musl/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-armv5-musl/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-armv5-musl) - Linux armv5 cross compiler toolchain using - [musl](https://www.musl-libc.org/) as base \"libc\". + +Linux armv5 cross compiler toolchain using +[musl](https://www.musl-libc.org/) as base \"libc\". ### dockcross/linux-armv6 -![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-armv6/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-armv6/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-armv6) - Linux ARMv6 cross compiler toolchain for the Raspberry Pi, etc. +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-armv6/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-armv6/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-armv6) + +Linux ARMv6 cross compiler toolchain for the Raspberry Pi, etc. ### dockcross/linux-armv6-musl ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-armv6-musl/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-armv6-musl/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-armv6-musl) - Linux ARMv6 cross compiler toolchain for the Raspberry Pi, etc, - using [musl](https://www.musl-libc.org/) as base \"libc\". + +Linux ARMv6 cross compiler toolchain for the Raspberry Pi, etc, +using [musl](https://www.musl-libc.org/) as base \"libc\". ### dockcross/linux-armv7 ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-armv7/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-armv7/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-armv7) - Generic Linux armv7 cross compiler toolchain. + +Generic Linux armv7 cross compiler toolchain. ### dockcross/linux-armv7a ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-armv7a/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-armv7a/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-armv7a) - Toolchain configured for ARMv7-A used in Beaglebone Black single - board PC with TI SoC AM3358 on board, Cortex-A8. + +Toolchain configured for ARMv7-A used in Beaglebone Black single +board PC with TI SoC AM3358 on board, Cortex-A8. ### dockcross/linux-armv7l-musl ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-armv7l-musl/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-armv7l-musl/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-armv7l-musl) - Toolchain configured for ARMv7-L, using - [musl](https://www.musl-libc.org/) as base \"libc\". + +Toolchain configured for ARMv7-L, using +[musl](https://www.musl-libc.org/) as base \"libc\". ### dockcross/linux-mipsel ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-mipsel/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-mipsel/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-mipsel) - Linux mipsel cross compiler toolchain for little endian MIPS GNU - systems. + +Linux mipsel cross compiler toolchain for little endian MIPS GNU +systems. ### dockcross/linux-mips ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-mips/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-mips/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-mips) - Linux mips cross compiler toolchain for big endian 32-bit hard float - MIPS GNU systems. + +Linux mips cross compiler toolchain for big endian 32-bit hard float +MIPS GNU systems. ### dockcross/linux-s390x ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-s390x/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-s390x/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-s390x) - Linux s390x cross compiler toolchain for S390X GNU systems. + +Linux s390x cross compiler toolchain for S390X GNU systems. ### dockcross/linux-ppc64le ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-ppc64le/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-ppc64le/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-ppc64le) - Linux PowerPC 64 little endian cross compiler toolchain for the - POWER8, etc. Important: Due to Issue #430, automatic build of newer - images has been disabled. + +Linux PowerPC 64 little endian cross compiler toolchain for the +POWER8, etc. Important: Due to Issue #430, automatic build of newer +images has been disabled. ### dockcross/linux-x64 ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-x64/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-x64/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-x64) - Linux x86_64 / amd64 compiler. Since the Docker image is natively - x86_64, this is not actually a cross compiler. + +Linux x86_64 / amd64 compiler. Since the Docker image is natively +x86_64, this is not actually a cross compiler. ### dockcross/linux-x64-clang ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-x64-clang/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-x64-clang/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-x64-clang) - Linux clang x86_64 / amd64 compiler. Since the Docker image is - natively x86_64, this is not actually a cross compiler. + +Linux clang x86_64 / amd64 compiler. Since the Docker image is +natively x86_64, this is not actually a cross compiler. ### dockcross/linux-x86 ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/linux-x86/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/linux-x86/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/linux-x86) - Linux i686 cross compiler. + +Linux i686 cross compiler. ### dockcross/manylinux2014-x64 ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/manylinux2014-x64/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/manylinux2014-x64/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/manylinux2014-x64) - Docker [manylinux2014](https://github.com/pypa/manylinux) image for - building Linux x86_64 / amd64 [Python wheel - packages](http://pythonwheels.com/). It includes Python 3.5, 3.6, - 3.7, 3.8, and 3.9. Also has support for the dockcross script, and it - has installations of CMake, Ninja, and - [scikit-build](http://scikit-build.org). For CMake, it sets - [MANYLINUX2014]{.title-ref} to \"TRUE\" in the toolchain. + +Docker [manylinux2014](https://github.com/pypa/manylinux) image for +building Linux x86_64 / amd64 [Python wheel +packages](http://pythonwheels.com/). It includes Python 3.5, 3.6, +3.7, 3.8, and 3.9. Also has support for the dockcross script, and it +has installations of CMake, Ninja, and +[scikit-build](http://scikit-build.org). For CMake, it sets +[MANYLINUX2014]{.title-ref} to \"TRUE\" in the toolchain. ### dockcross/manylinux2014-x86 ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/manylinux2014-x86/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/manylinux2014-x86/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/manylinux2014-x86) - Docker [manylinux2014](https://github.com/pypa/manylinux) image for - building Linux i686 [Python wheel - packages](http://pythonwheels.com/). It includes Python 3.5, 3.6, - 3.7, 3.8, and 3.9. Also has support for the dockcross script, and it - has installations of CMake, Ninja, and - [scikit-build](http://scikit-build.org). For CMake, it sets - [MANYLINUX2014]{.title-ref} to \"TRUE\" in the toolchain. + +Docker [manylinux2014](https://github.com/pypa/manylinux) image for +building Linux i686 [Python wheel +packages](http://pythonwheels.com/). It includes Python 3.5, 3.6, +3.7, 3.8, and 3.9. Also has support for the dockcross script, and it +has installations of CMake, Ninja, and +[scikit-build](http://scikit-build.org). For CMake, it sets +[MANYLINUX2014]{.title-ref} to \"TRUE\" in the toolchain. ### dockcross/manylinux2014-aarch64 ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/manylinux2014-aarch64/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/manylinux2014-aarch64/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/manylinux2014-aarch64) - Docker [manylinux2014](https://github.com/pypa/manylinux) image for - building Linux aarch64 / arm64 [Python wheel - packages](http://pythonwheels.com/). It includes Python 3.5, 3.6, - 3.7, 3.8, and 3.9. Also has support for the dockcross script, and it - has installations of CMake, Ninja, and - [scikit-build](http://scikit-build.org). For CMake, it sets - [MANYLINUX2014]{.title-ref} to \"TRUE\" in the toolchain. + +Docker [manylinux2014](https://github.com/pypa/manylinux) image for +building Linux aarch64 / arm64 [Python wheel +packages](http://pythonwheels.com/). It includes Python 3.5, 3.6, +3.7, 3.8, and 3.9. Also has support for the dockcross script, and it +has installations of CMake, Ninja, and +[scikit-build](http://scikit-build.org). For CMake, it sets +[MANYLINUX2014]{.title-ref} to \"TRUE\" in the toolchain. ### dockcross/manylinux2010-x64 ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/manylinux2010-x64/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/manylinux2010-x64/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/manylinux2010-x64) - Docker [manylinux2010](https://github.com/pypa/manylinux) image for - building Linux x86_64 / amd64 [Python wheel - packages](http://pythonwheels.com/). It includes Python 2.7, 3.4, - 3.5, 3.6, 3.7 and 3.8. Also has support for the dockcross script, - and it has installations of CMake, Ninja, and - [scikit-build](http://scikit-build.org). For CMake, it sets - [MANYLINUX2010]{.title-ref} to \"TRUE\" in the toolchain. + +Docker [manylinux2010](https://github.com/pypa/manylinux) +image for building Linux x86_64 / amd64 [Python wheel +packages](http://pythonwheels.com/). It includes Python 2.7, 3.4, +3.5, 3.6, 3.7 and 3.8. Also has support for the dockcross script, +and it has installations of CMake, Ninja, and +[scikit-build](http://scikit-build.org). For CMake, it sets +[MANYLINUX2010]{.title-ref} to \"TRUE\" in the toolchain. ### dockcross/manylinux2010-x86 ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/manylinux2010-x86/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/manylinux2010-x86/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/manylinux2010-x86) - Docker [manylinux2010](https://github.com/pypa/manylinux) image for - building Linux i686 [Python wheel - packages](http://pythonwheels.com/). It includes Python 2.7, 3.4, - 3.5, 3.6, 3.7 and 3.8. Also has support for the dockcross script, - and it has installations of CMake, Ninja, and - [scikit-build](http://scikit-build.org). For CMake, it sets - [MANYLINUX2010]{.title-ref} to \"TRUE\" in the toolchain. + +Docker [manylinux2010](https://github.com/pypa/manylinux) image for +building Linux i686 [Python wheel +packages](http://pythonwheels.com/). It includes Python 2.7, 3.4, +3.5, 3.6, 3.7 and 3.8. Also has support for the dockcross script, +and it has installations of CMake, Ninja, and +[scikit-build](http://scikit-build.org). For CMake, it sets +[MANYLINUX2010]{.title-ref} to \"TRUE\" in the toolchain. ### dockcross/manylinux1-x64 ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/manylinux1-x64/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/manylinux1-x64/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/manylinux1-x64) - Docker - [manylinux1](https://github.com/pypa/manylinux/tree/manylinux1) - image for building Linux x86_64 / amd64 [Python wheel - packages](http://pythonwheels.com/). It includes Python 2.7, 3.4, - 3.5, 3.6, 3.7 and 3.8. Also has support for the dockcross script, - and it has installations of CMake, Ninja, and - [scikit-build](http://scikit-build.org). For CMake, it sets - [MANYLINUX1]{.title-ref} to \"TRUE\" in the toolchain. + +Docker [manylinux1](https://github.com/pypa/manylinux/tree/manylinux1) +image for building Linux x86_64 / amd64 [Python wheel +packages](http://pythonwheels.com/). It includes Python 2.7, 3.4, +3.5, 3.6, 3.7 and 3.8. Also has support for the dockcross script, +and it has installations of CMake, Ninja, and +[scikit-build](http://scikit-build.org). For CMake, it sets +[MANYLINUX1]{.title-ref} to \"TRUE\" in the toolchain. ### dockcross/manylinux1-x86 ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/manylinux1-x86/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/manylinux1-x86/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/manylinux1-x86) - Docker - [manylinux1](https://github.com/pypa/manylinux/tree/manylinux1) - image for building Linux i686 [Python wheel - packages](http://pythonwheels.com/). It includes Python 2.7, 3.4, - 3.5, 3.6, 3.7 and 3.8. Also has support for the dockcross script, - and it has installations of CMake, Ninja, and - [scikit-build](http://scikit-build.org). For CMake, it sets - [MANYLINUX1]{.title-ref} to \"TRUE\" in the toolchain. + +Docker [manylinux1](https://github.com/pypa/manylinux/tree/manylinux1) +image for building Linux i686 [Python wheel +packages](http://pythonwheels.com/). It includes Python 2.7, 3.4, +3.5, 3.6, 3.7 and 3.8. Also has support for the dockcross script, +and it has installations of CMake, Ninja, and +[scikit-build](http://scikit-build.org). For CMake, it sets +[MANYLINUX1]{.title-ref} to \"TRUE\" in the toolchain. ### dockcross/web-wasm ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/web-wasm/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/web-wasm/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/web-wasm) - The Emscripten WebAssembly/asm.js/JavaScript cross compiler. + +The Emscripten WebAssembly/asm.js/JavaScript cross compiler. ### dockcross/windows-static-x64 ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/windows-static-x64/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/windows-static-x64/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/windows-static-x64) - 64-bit Windows cross-compiler based on - [MXE/MinGW-w64](https://mxe.cc/) with win32 threads and static - linking. + +64-bit Windows cross-compiler based on [MXE/MinGW-w64](https://mxe.cc/) with win32 threads and static +linking. ### dockcross/windows-static-x64-posix ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/windows-static-x64-posix/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/windows-static-x64-posix/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/windows-static-x64-posix) - 64-bit Windows cross-compiler based on - [MXE/MinGW-w64](https://mxe.cc/) with posix threads and static - linking. + +64-bit Windows cross-compiler based on [MXE/MinGW-w64](https://mxe.cc/) with posix threads and static +linking. ### dockcross/windows-static-x86 ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/windows-static-x86/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/windows-static-x86/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/windows-static-x86) - 32-bit Windows cross-compiler based on - [MXE/MinGW-w64](https://mxe.cc/) with win32 threads and static - linking. + +32-bit Windows cross-compiler based on [MXE/MinGW-w64](https://mxe.cc/) with win32 threads and static linking. ### dockcross/windows-shared-x64 ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/windows-shared-x64/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/windows-shared-x64/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/windows-shared-x64) - 64-bit Windows cross-compiler based on - [MXE/MinGW-w64](https://mxe.cc/) with win32 threads and dynamic - linking. + +64-bit Windows cross-compiler based on [MXE/MinGW-w64](https://mxe.cc/) with win32 threads and dynamic linking. ### dockcross/windows-shared-x64-posix ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/windows-shared-x64-posix/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/windows-shared-x64-posix/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/windows-shared-x64-posix) - 64-bit Windows cross-compiler based on - [MXE/MinGW-w64](https://mxe.cc/) with posix threads and dynamic - linking. + +64-bit Windows cross-compiler based on [MXE/MinGW-w64](https://mxe.cc/) with posix threads and dynamic linking. ### dockcross/windows-shared-x86 ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/dockcross/windows-shared-x86/latest) ![MicroBadger Layers (tag)](https://img.shields.io/microbadger/layers/dockcross/windows-shared-x86/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/dockcross/windows-shared-x86) - 32-bit Windows cross-compiler based on - [MXE/MinGW-w64](https://mxe.cc/) with win32 threads and dynamic - linking. -# Articles +32-bit Windows cross-compiler based on [MXE/MinGW-w64](https://mxe.cc/) with win32 threads and dynamic linking. + +## Articles - [dockcross: C++ Write Once, Run Anywhere](https://nbviewer.jupyter.org/format/slides/github/dockcross/cxx-write-once-run-anywhere/blob/master/dockcross_CXX_Write_Once_Run_Anywhere.ipynb#/) - [Cross-compiling binaries for multiple architectures with Docker](https://web.archive.org/web/20170912153531/http://blogs.nopcode.org/brainstorm/2016/07/26/cross-compiling-with-docker) -# Built-in update commands +## Built-in update commands A special update command can be executed that will update the source cross-compiler Docker image or the dockcross script itself. @@ -353,7 +376,7 @@ cross-compiler Docker image or the dockcross script itself. - `dockcross update`: Update both the docker image, and the dockcross script. -# Download all images +## Download all images To easily download all images, the convenience target `display_images` could be used: @@ -364,7 +387,7 @@ could be used: docker pull dockcross/$image done -# Install all dockcross scripts +## Install all dockcross scripts To automatically install in `~/bin` the dockcross scripts for each images already downloaded, the convenience target `display_images` could @@ -381,31 +404,31 @@ be used: chmod u+x ~/bin/dockcross-$image done -# Dockcross configuration +## Dockcross configuration The following environmental variables and command-line options are used. In all cases, the command-line option overrides the environment variable. -## DOCKCROSS_CONFIG / \--config\|-c \ +### DOCKCROSS_CONFIG / \--config\|-c \ This file is sourced, if it exists, before executing the rest of the dockcross script. Default: `~/.dockcross` -## DOCKCROSS_IMAGE / \--image\|-i \ +### DOCKCROSS_IMAGE / \--image\|-i \ The Docker cross-compiler image to run. Default: Image with which the script was created. -## DOCKCROSS_ARGS / \--args\|-a \ +### DOCKCROSS_ARGS / \--args\|-a \ Extra arguments to pass to the `docker run` command. Quote the entire set of args if they contain spaces. -# Per-project dockcross configuration +## Per-project dockcross configuration If a shell script named `.dockcross` is found in the current directory where the dockcross script is started, it is executed before the @@ -416,7 +439,7 @@ For example, commands like `git config --global advice.detachedHead false` can be added to this script. -# How to extend Dockcross images +## How to extend Dockcross images In order to extend Dockcross images with your own commands, one must: @@ -435,12 +458,12 @@ An example Dockerfile would be: And then in the shell: - docker build -t my_cool_image . # Builds the dockcross image. - docker run my_cool_image > linux-armv7 # Creates a helper script named linux-armv7. - chmod +x linux-armv7 # Gives the script execution permission. - ./linux-armv7 bash # Runs the helper script with the argument "bash", which starts an interactive container using your extended image. + docker build -t my_cool_image . ## Builds the dockcross image. + docker run my_cool_image > linux-armv7 ## Creates a helper script named linux-armv7. + chmod +x linux-armv7 ## Gives the script execution permission. + ./linux-armv7 bash ## Runs the helper script with the argument "bash", which starts an interactive container using your extended image. -# What is the difference between [dockcross]{.title-ref} and [dockbuild]{.title-ref} ? +## What is the difference between [dockcross]{.title-ref} and [dockbuild]{.title-ref} ? The key difference is that [dockbuild](https://github.com/dockbuild/dockbuild#readme) images do From c7d6bb91b7f7ef5e07f77d16a5ba0ababaf65969 Mon Sep 17 00:00:00 2001 From: Bensuperpc Date: Tue, 29 Jun 2021 17:47:51 +0200 Subject: [PATCH 4/5] Add readme to ignored path in CI It is not necessary to launch a git workflow when modifying the README Signed-off-by: Bensuperpc --- .github/workflows/main.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 19f2df5..0ba333e 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -4,9 +4,13 @@ on: push: branches: - 'master' + paths-ignore: + - '**/README.md' pull_request: branches: - '*' + paths-ignore: + - '**/README.md' jobs: base: From 656e8ef65a95f1bfc16b8811a8e725ed89c0aea0 Mon Sep 17 00:00:00 2001 From: Bensuperpc Date: Tue, 29 Jun 2021 22:14:18 +0200 Subject: [PATCH 5/5] Update to bullseye Update to bullseye Signed-off-by: Bensuperpc --- Dockerfile.in | 4 +++- common.debian | 5 +---- linux-x64-clang/Dockerfile.in | 6 +++--- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/Dockerfile.in b/Dockerfile.in index c2ecad6..44ff99e 100644 --- a/Dockerfile.in +++ b/Dockerfile.in @@ -1,4 +1,6 @@ -FROM debian:buster-slim +ARG DOCKER_IMAGE=debian:bullseye-slim +FROM $DOCKER_IMAGE + MAINTAINER Matt McCormick "matt.mccormick@kitware.com" #include "common.debian" diff --git a/common.debian b/common.debian index 01d4d94..67027a1 100644 --- a/common.debian +++ b/common.debian @@ -36,10 +36,7 @@ RUN \ xz-utils \ zip \ zlib1g-dev \ -# python-is-python3 \ + python-is-python3 \ && apt-get clean autoclean --yes \ && apt-get autoremove --yes \ && rm -rf /var/lib/{apt,dpkg,cache,log}/ - -RUN ln -s /usr/bin/python3 /usr/bin/python \ - && ln -s /usr/bin/pip3 /usr/bin/pip diff --git a/linux-x64-clang/Dockerfile.in b/linux-x64-clang/Dockerfile.in index ed23eea..e362e65 100644 --- a/linux-x64-clang/Dockerfile.in +++ b/linux-x64-clang/Dockerfile.in @@ -1,9 +1,9 @@ FROM dockcross/base:latest MAINTAINER Matt McCormick "matt.mccormick@kitware.com" # flang -RUN echo "deb http://apt.llvm.org/buster/ llvm-toolchain-buster main" >> /etc/apt/sources.list \ - && echo "deb-src http://apt.llvm.org/buster/ llvm-toolchain-buster main" >> /etc/apt/sources.list \ - && wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add - \ +RUN echo "deb http://apt.llvm.org/bullseye/ llvm-toolchain-bullseye main" >> /etc/apt/sources.list \ + && echo "deb-src http://apt.llvm.org/bullseye/ llvm-toolchain-bullseye main" >> /etc/apt/sources.list \ + && wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - \ && apt-get update \ && apt-get purge --autoremove -y gcc g++ software-properties-common \ && apt-get -y install clang libc++-dev libc++abi-dev clang-format clang-tidy lldb \