Docker image for bare-metal ARM development and firmware builds with arm-none-eabi-gcc.
39
Docker image for bare-metal ARM development and firmware builds with arm-none-eabi-gcc.
The image is based on:
ubuntu:24.04
It includes the official Arm GNU Toolchain environment plus extra tools for embedded development, changelog workflows, and USB/JTAG access.
The official Arm GNU Toolchain release provides:
XX.X.rel1arm-none-eabi-gccarm-none-eabi-g++arm-none-eabi-gdbarm-none-eabi-objcopyarm-none-eabi-objdumparm-none-eabi-sizeThis image additionally installs:
build-essentialgitcurludevusbutilsccachecmakeninja-buildmakeopenocdpython3python3-pippython3-venvnpmGlobal npm packages installed in the image:
conventional-changelog-clicommitizencz-conventional-changelogThe Arm toolchain is installed to:
/opt/arm-gnu-toolchain
docker pull bbaskovc/gcc-arm-none-eabi:XX.X
docker run --rm -it bbaskovc/gcc-arm-none-eabi:XX.X
Run this from a firmware project directory:
docker run --rm -it \
-v "$PWD:/workspaces/project" \
-w /workspaces/project \
bbaskovc/gcc-arm-none-eabi:XX.X \
cmake -S . -B build -G Ninja
Then build:
docker run --rm -it \
-v "$PWD:/workspaces/project" \
-w /workspaces/project \
bbaskovc/gcc-arm-none-eabi:XX.X \
cmake --build build
Run this from a firmware project directory:
docker run --rm -it \
-v "$PWD:/workspaces/project" \
-w /workspaces/project \
bbaskovc/gcc-arm-none-eabi:XX.X \
make
For OpenOCD or USB/JTAG debugging, the container may need broader USB access:
docker run --rm -it \
--privileged \
-v /dev/bus/usb:/dev/bus/usb \
-v "$PWD:/workspaces/project" \
-w /workspaces/project \
bbaskovc/gcc-arm-none-eabi:XX.X \
/bin/bash
Example OpenOCD command:
openocd -f interface/stlink.cfg -f target/stm32f4x.cfg
Adjust the OpenOCD interface and target configuration files for your board.
/workspaces./bin/bash.PATH.Content type
Image
Digest
sha256:7e422664f…
Size
527.7 MB
Last updated
3 months ago
docker pull bbaskovc/gcc-arm-none-eabi:15.2