mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-22 04:44:46 +00:00
doc: Expand what we say about building the docker container a bit
First, try and be slightly clearer about what "buildx" is with respect to the docker build process. Second, now that we build the container for both amd64 and arm64, we should document how to make a docker "builder" that has multiple nodes. With this one node should be amd64 and one node arm64, and with reasonably fast arm64 hardware this will be much quicker than using QEMU. Signed-off-by: Tom Rini <trini@konsulko.com> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
9a87362962
commit
e82922ae11
1 changed files with 14 additions and 6 deletions
20
doc/build/docker.rst
vendored
20
doc/build/docker.rst
vendored
|
@ -4,21 +4,29 @@ GitLab CI / U-Boot runner container
|
||||||
In order to have a reproducible and portable build environment for CI we use a container for building in. This means that developers can also reproduce the CI environment, to a large degree at least, locally. This file is located in the tools/docker directory.
|
In order to have a reproducible and portable build environment for CI we use a container for building in. This means that developers can also reproduce the CI environment, to a large degree at least, locally. This file is located in the tools/docker directory.
|
||||||
|
|
||||||
The docker image supports both amd64 and arm64. Ensure that the
|
The docker image supports both amd64 and arm64. Ensure that the
|
||||||
'docker-buildx' Debian package is installed (or the equivalent on another
|
`buildx` Docker CLI plugin is installed. This is often available in your
|
||||||
distribution).
|
distribution via the 'docker-buildx' or 'docker-buildx-plugin' package.
|
||||||
|
|
||||||
You will need a multi-platform container, otherwise this error is shown::
|
You will need a multi-platform container, otherwise this error is shown::
|
||||||
|
|
||||||
ERROR: Multi-platform build is not supported for the docker driver.
|
ERROR: Multi-platform build is not supported for the docker driver.
|
||||||
Switch to a different driver, or turn on the containerd image store, and try again.
|
Switch to a different driver, or turn on the containerd image store, and try again.
|
||||||
|
|
||||||
You can add one with::
|
You can add a simple one with::
|
||||||
|
|
||||||
sudo docker buildx create --name multiarch --driver docker-container --use
|
sudo docker buildx create --name multiarch --driver docker-container --use
|
||||||
|
|
||||||
Building is supported on both amd64 (i.e. 64-bit x86) and arm64 machines. While
|
This will result in a builder that will use QEMU for the non-native
|
||||||
both amd64 and arm64 happen in parallel, the non-native part will take
|
architectures request in a build. While both amd64 and arm64 happen in
|
||||||
considerably longer as it must use QEMU to emulate the foreign code.
|
parallel, the non-native part will take considerably longer as it must use QEMU
|
||||||
|
to emulate the foreign code. An alternative, if you have accesss to reasonably
|
||||||
|
fast amd64 (i.e. 64-bit x86) and arm64 machines is::
|
||||||
|
|
||||||
|
sudo docker buildx create --name multiarch-multinode --node localNode --bootstrap --use
|
||||||
|
sudo docker buildx create --name multiarch-multinode --append --node remoteNode --bootstrap ssh://user@host
|
||||||
|
|
||||||
|
And this will result in a builder named multiarch-multinode that will build
|
||||||
|
each platform natively on each node.
|
||||||
|
|
||||||
To build the image yourself::
|
To build the image yourself::
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue