Development Container

The Sol3 SDK uses a development container to provide a consistent build environment across different development machines. The devcontainer image is built from the Dockerfile at the root of project template, allowing users to customize their development environment by modifying the Dockerfile.

Core Components

Dockerfile Image

The devcontainer image is built from the multi-stage Dockerfile in the project repository, using the devcontainer stage. This stage includes:

  • C++ build toolchain (Clang, CMake, Ninja)

  • vcpkg package manager

  • Development tools (gdb, valgrind, etc.)

  • Cross-compilation toolchains for ARM64

Devcontainer Configuration

The .devcontainer/devcontainer.json configuration file references the Dockerfile and configures:

  • Build context and target stage (devcontainer)

  • VS Code extensions and settings for C++ development

  • Hardware device access through container runtime arguments

  • Post-start commands for environment setup

Customization

Refer to Customizing the Development Container for a guide to customization.

Hardware Access

The devcontainer configuration enables access to development hardware through container runtime arguments in devcontainer.json. Default configuration includes:

  • GPU access for graphics development and display output

  • USB device passthrough for hardware debugging

  • Host networking for device communication

Additional devices can be added through the runArgs configuration. For QRB5165 development, the devcontainer includes cross-compilation toolchains and can access hardware debuggers and serial connections to target devices.