To generate the default image in this repository, open a terminal in the devcontainer and run:
/opt/cooker/scripts/broiler.sh broil
Alternatively use the provided VSCode tasks (Terminal->Run Task...) which will perform the necessary cooker initialization, download, and build steps.
- Git
- Docker/docker-compose/docker desktop
- VSCode
- VSCode extension: dev containers
Note: Ensure that Docker-Desktop is running before continuing
- Clone git repository into a local folder
- In VSCode: open cloned repository in VSCode (File->open folder...)
- In VSCode: open the Command Palette (View->Command Palette...) and run:
Dev Containers: Reopen in Container
To Do
To generate the image in this repository, open a terminal in the devcontainer and run:
/opt/cooker/scripts/broiler.sh broil
Alternatively, use the provided VSCode build task (Terminal->Run Build Task...).
This repo contains boilerplate structure necessary to start a devcontainer environment in Visual Studio Code, download the necessary Yocto Project sources to temporary space, configure the Yocto/OpenEmbedded bitbake tools, and generate a runnable Yocto runtime.
There are nearly infinite numbers of programming languages from C to Rust, and many more build orchestration tools from classic Makefile to CMake, which attempt to manage the complexities of system libraries, build configuration and versioning. While these often try to be 'universal', there can be OS and version dependencies for the very tools used, a typical solution is the Python 'pyenv' too which allows multiple versions of Python to exist in parallel.
For developers who may have multiple projects ongoing even managing pyenv is too much. A common modern solution for all of the dependencies of a project is to use Docker containers to hold both the "host" tools and the target development code. Microsoft introduced an open-source specification devcontainers with an open-source reference implementation devcontainers-cli, which is part of the VSCode IDE by default, and also supported as a web based IDE through GitHub.
The Yocto Project is a set of tools (bitbake) and metadata (layers) for building embedded Linux runtimes (kernel, filesystem, bootloader, etc.). It is supported by most major CPUs, and has a robust ecosystem of partners.