mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-16 09:54:35 +00:00
docker: Support building for multiple architectures
Add instructions on how to build the file for multiple architectures. Add a message indicating what is happening. Update the documentation as well. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Tom Rini <trini@konsulko.com>
This commit is contained in:
parent
191e145471
commit
45b2f9d4fb
2 changed files with 30 additions and 2 deletions
23
doc/build/docker.rst
vendored
23
doc/build/docker.rst
vendored
|
@ -1,11 +1,30 @@
|
|||
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. To build the image yourself
|
||||
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
|
||||
'docker-buildx' Debian package is installed (or the equivalent on another
|
||||
distribution).
|
||||
|
||||
You will need a multi-platform container, otherwise this error is shown::
|
||||
|
||||
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.
|
||||
|
||||
You can add one with::
|
||||
|
||||
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
|
||||
both amd64 and arm64 happen in parallel, the non-native part will take
|
||||
considerably longer as it must use QEMU to emulate the foreign code.
|
||||
|
||||
To build the image yourself::
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
sudo docker build -t your-namespace:your-tag .
|
||||
sudo docker buildx build --platform linux/arm64/v8,linux/amd64 -t your-namespace:your-tag .
|
||||
|
||||
Or to use an existing container
|
||||
|
||||
|
|
|
@ -6,9 +6,18 @@ FROM ubuntu:jammy-20240808
|
|||
LABEL org.opencontainers.image.authors="Tom Rini <trini@konsulko.com>"
|
||||
LABEL org.opencontainers.image.description=" This image is for building U-Boot inside a container"
|
||||
|
||||
# Used by docker to set the target platform: valid values are linux/arm64/v8
|
||||
# and linux/amd64
|
||||
ARG TARGETPLATFORM
|
||||
|
||||
# Used by docker to set the build platform: the only valid value is linux/amd64
|
||||
ARG BUILDPLATFORM
|
||||
|
||||
# Make sure apt is happy
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
RUN echo "Building on $BUILDPLATFORM, for target $TARGETPLATFORM"
|
||||
|
||||
# Add LLVM repository
|
||||
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
|
||||
--mount=type=cache,target=/var/lib/apt,sharing=locked \
|
||||
|
|
Loading…
Add table
Reference in a new issue