f197a3fe88
Update Docker build script accordingly. Also fix permission issue with docker build (all files belonged to root).
33 lines
1.5 KiB
Markdown
33 lines
1.5 KiB
Markdown
# Build the project using Docker
|
|
A [Docker image (Dockerfile)](../docker) containing all the build environment is available for X86_64 and AMD64 architectures. This image makes the build of the firmware and the generation of the DFU file for OTA.
|
|
|
|
## Build the image
|
|
The image is not (yet) available on DockerHub, you need to build it yourself, which is quite easy. The following commands must be run from the root of the project.
|
|
|
|
If you are running on a x86_64 computer :
|
|
```
|
|
docker image build -t infinitime-build --build-arg USER_ID=$(id -u) --build-arg GROUP_ID=$(id -g) docker/x86_64/
|
|
```
|
|
|
|
And if your are running on an ARM64 device (tested on RaspberryPi4 and Pine64 PineBookPro):
|
|
```
|
|
docker image build -t infinitime-build --build-arg USER_ID=$(id -u) --build-arg GROUP_ID=$(id -g) docker/arm64/
|
|
```
|
|
|
|
This operation will take some time. It builds a Docker image based on Ubuntu, install some packages, download the ARM toolchain, the NRF SDK, MCUBoot and adafruit-nrfutil.
|
|
|
|
When this is done, a new image named *infinitime-build* is available.
|
|
|
|
## Run a container to build the project:
|
|
|
|
```
|
|
docker run --rm -v <project_root>:/sources infinitime-build
|
|
```
|
|
|
|
Replace *<project_root>* by the path of the root of the project on your computer. For example:
|
|
|
|
```
|
|
docker run --rm -v /home/jf/git/PineTime:/sources infinitime-build
|
|
```
|
|
|
|
This will start a container, build the firmware and generate the MCUBoot image and the DFU file. The output of the build is stored in **<project_root>/built/output**. |