From 1730d6fd0b3c22d1db98615a361c8379d8607060 Mon Sep 17 00:00:00 2001 From: Yannick Jadoul Date: Sat, 16 Sep 2017 23:03:14 +0200 Subject: [PATCH] Adding notes on Linux builds in Docker --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 8a975971..d3f563a3 100644 --- a/README.md +++ b/README.md @@ -84,6 +84,12 @@ All being well, you should get wheels delivered to you in a few minutes. A more detailed description of the options, the allowed values, and some examples can be found in the [Options](#options) section. +### Linux builds on Docker + +Linux wheels are built in the [`manylinux1` docker images](https://github.com/pypa/manylinux) to provide binary compatible wheels on linux, according to [PEP 513](https://www.python.org/dev/peps/pep-0513/). Because of this, when building with `cibuildwheel` on Linux, a few things should be taken into account: +- Progams and libraries cannot be installed on the Travis CI Ubuntu host with `apt-get`, but can be installed inside of the Docker image using `yum` or manually. The same goes for environment variables that are potentially needed to customize the wheel building. `cibuildwheel` supports this by providing the `CIBW_ENVIRONMENT` and `CIBW_BEFORE_BUILD` options to setup the build environment inside the running Docker image. See [below](#options) for details on these options. +- The project directory is mounted in the running Docker instance as `/project`, the output directory for the wheels as `/output`. In general, this handled transparently by `cibuildwheel`. For a more finegrained level of control however, the root of the host file system is mounted as `/host`, allowing for example to access shared files, caches, etc. on the host file system. + Options -------