Newer
Older
mbed-os / docker_images / mbed-os-env / README.md
# Mbed OS development environment Docker image

This Docker image is the official Mbed OS development environment.

* It is based on Ubuntu 20.04
* Python and CMake are installed
* Arm-none-eabi-gcc toolchain is installed
* Latest released version of mbed-cli and mbed-greentea are installed
* All other Mbed OS dependency tools are installed.

# How to use the Docker image:

## Pull the Docker image
```bash
docker pull ghcr.io/armmbed/mbed-os-env:<label>
```

## Run Mbed OS environment without HW support (build Mbed images only)
Launch the Docker image by
```bash
docker run -it ghcr.io/armmbed/mbed-os-env:<label>
```
Then you will have a container with an Mbed OS development environment.
You should be able to compile Mbed commands/examples as recommended in the documentation
e.g.
```bash
mbed-tools import mbed-os-example-blinky
cd mbed-os-example-blinky
mbed-tools compile -m <TARGET> -t GCC_ARM
```

## Run Mbed OS environment with HW support (USB pass-through)
:warning: This currently works only on Linux host machines with [Mbed CLI 1](https://os.mbed.com/docs/mbed-os/v6.13/build-tools/mbed-cli-1.html).

If you want to use this Docker image to connect and flash your targets, you will need some extra command line option to pass-through your USB devices.
```bash
sudo docker run -it --privileged -v /dev/disk/by-id:/dev/disk/by-id -v /dev/serial/by-id:/dev/serial/by-id ghcr.io/armmbed/mbed-os-env:<label>
```
Then you will have a container with an Mbed OS development environment.
To make sure your Mbed targets have been detected, you might want to manually run the mount command and `mbedls` to check
```bash
mount /dev/sdb /mnt
mbedls
```
If `mbedls` detected  your connected target, then you should be able to run Mbed tests/examples as recommended in the Mbed documentation.
``` bash
mbed import mbed-os
cd mbed-os
mbed test -t GCC_ARM -m <target> 
```