Develop with PlatformIO. Includes all needed SDKs, extensions, and dependencies, and autonomously handle connected hardware.
Metadata | Value |
---|---|
Contributors | On Github |
Categories | IoT |
Definition type | Dockerfile |
Container host OS support | Linux |
Container OS | Debian (bookworm , bullseye ) |
Languages, platforms | PlatformIO, C++, Python |
MacOS version of Docker does not support USB Passthrough, so downloading and serial port monitoring is not possible from a Docker container at this time. USB Passthrough on macOS
This definition should work unmodified. It does not require adjustments on the host platform (i.e. no need to adjust udev rules or a user's groups)
The container binds to /dev/
and has direct access to devices connected through the host platform. It manages its own udev rules and permissions indipendently from the host OS.
This feature usually works on debian-based distributions. However, some distros like Fedora use different group IDs.
If your distro's dialout (or equivalent) group id is not 20
, you need to set the FEDORA_COMPAT
arg to "1"
This devcontainer supports the debian
base images as variants, as follows:
Debian release | VARIANT value |
---|---|
Debian 12 | bookworm or debian-12 |
Debian 11 | bullseye or debian-11 |
Debian 10 | buster or debian-10 |
Tip
If you are setting up a new project, avoid debian 10 (buster
) as it will become EOL on 2024-06-30.
Use bookworm
as it is an LTS that will be supported until 2028.
Note
Nothing is inherently inompatible with the ubuntu
base images AFAIK, however they were not tested.
- If this is your first time using a development container, please see getting started information on setting up Remote-Containers.
- Clone this repository locally.
- Start VS Code and open your project folder.
- Use your local operating system's file explorer to drag-and-drop the locally cloned copy of the
.devcontainer
folder for this definition into the VS Code file explorer for your opened project.
After following these steps the contents of the .devcontainer
folder in your project can be adapted to meet your needs.
- Finally open the Command Palette and run Remote-Containers: Reopen Folder in Container to start using the definition.
This container runs in --privileged
mode.