Docker Betaflight build
Clone and edit Betaflight locally on your platform. This image will take it from there and turn your code into a binary which you then can flash to your flight controller with the Betaflight Configurator.
Clone the Betaflight repository
Docker runs on a VirtualBox VM which by default only shares the user directory from the underlying guest OS. On Windows that is
c:/Users/<user> and on Mac it's
/Users/<user>. Hence, you need to clone the Betaflight repository to your user directory. If you want to place it outside the user directory you need to adjust the VirtualBox VM sharing settings accordingly.
git clone https://github.com/betaflight/betaflight.git
Run this image with Docker
Start Docker and change into the Betaflight source directory (in the Docker console). Then run:
docker run --rm -ti -v `pwd`:/opt/betaflight betaflight/betaflight-build
Depending on the performance of your system it takes 1-3min until the compilation finishes. The first time you run this it takes longer because Docker needs to download the image and create a container.
Note for Windows users
(Docker on) Windows handles paths slightly differently. You need to specify the full path to the Betaflight directory in the command and you need to add an extra forward slash (
/) to the Windows path. The command thus becomes (
c equals C drive i.e.
docker run --rm -it -v //c/Users/<user>/<betaflight>:/opt/betaflight betaflight/betaflight-build
If the Windows path contains spaces it would have to be wrapped in quotes as usual on Windows.
docker run --rm -it -v "//c/Users/joe blogs/<betaflight>":/opt/betaflight betaflight/betaflight-build
The firmware file (
.hex) is created in the
obj subfolder of your betaflight source directory.
You can pass the following optional parameters to the Docker build like so:
docker run -e "<parameter>=value" --rm -ti -vpwd
PLATFORMThe platform to build for. Use
ALLto build for all platforms. (default:
Flashing the built binary
Use the Betaflight Configurator Chrome app to flash and configure your firmware.
Don't leave comments on Docker Hub that are intended to be support requests, since Docker Hub doesn't send notifications when you write them. Instead create an issue on GitHub.