This repository includes a Dockerfile for building a Docker Image with support for GNU ARM Embedded Toolchain. The result image is based on the Ubuntu 18.04 and is useful for cross-compiling applications for any target arm-none-eabi platform.
One of the possible applications is to use the result image to run any CI pipelines that build your applications for stm32 microcontrollers or any other embedded hardware on the ARM architecture.
GNU ARM Embedded Toolchain (version 9-2019-q4-major)
- ready-to-use suite of tools for C, C++ and assembly cross-compiling for arm-none-eabi targets (32-bit Arm Cortex-A, Cortex-M, and Cortex-R processor families). You can change this pack to more modern version if needed.CMake pack
- make and CMake tools for building, testing and packaging software.third-party tools for GoogleTest
- is needed to build GoogleTesting libraries from sources. Allows you to build firmware with unit tests.
NOTE:
If you will to change GNU ARM Embedded Toolchain pack, don't forget to update Dockerfile accordingly.
The Docker Image from this repository is open-source and free to use. You can find the result image on DockerHub page. Use command below to clone this image to your local machine:
docker pull kulebyaka/arm-compiler-ubuntu-18-04
- Docker - read this guide to install Docker. It is recomended to manage Docker as a non-root user after the installation.
- Clone this repository
- Run commands below to build the Dicker Image. It is recomended to use
"arm-compiler-ubuntu-18-04"
, but you can use any other name. Depending on your preference LOCAL_VERSION may not be specified (in this case the resulting Docker Image will have an "latest" tag).
docker build -t LOCAL_IMAGE_NAME:LOCAL_VERSION .
To use this Docker Image with your CI pipelines you should push it to your Docker Hub or any other registry. Run following commands in case you are using Docker Hub as an images storage:
docker login
docker tag LOCAL_IMAGE_NAME:LOCAL_VERSION DOCKERHUB_USERNAME/arm-compiler-ubuntu-18-04:latest
docker push DOCKERHUB_USERNAME/arm-compiler-ubuntu-18-04:latest
NOTE:
Do not change the image name in case you are pushing different versions of the same image (different tags are allowed).