Prebuilt, fully version-pinned dev container image for the Learn IoT Workshop — a Python-first, hands-on workshop for Raspberry Pi, Arduino, and ESP8266/ESP32.
Learners open the workshop repo in VS Code and choose Reopen in Container; this image carries the entire toolchain so nothing is installed on the host and every learner gets an identical environment. It works the same on Ubuntu and on Windows with WSL 2. Every component is pinned, so a rebuild months from now produces the same tools learners had on day one.
docker-build/Dockerfile.Base: mcr.microsoft.com/devcontainers/python:3.12-bookworm, pinned by digest.
Python 3.12 tooling (pinned in requirements.txt):
| Tool | Version | Purpose |
|---|---|---|
| PlatformIO Core | 6.1.16 | Build/upload firmware for ESP32 and AVR |
| esptool | 4.8.1 | Flash ESP8266/ESP32 over serial |
| pyserial | 3.5 | Serial port access |
| Adafruit Blinka | 8.51.0 | CircuitPython libraries on Linux/Pi |
| paho-mqtt | 2.1.0 | MQTT messaging |
| gpiozero | 2.0.1 | Raspberry Pi GPIO |
| requests | 2.32.4 | HTTP client |
| ruff / black / pytest | 0.8.6 / 24.10.0 / 8.3.4 | Lint, format, test |
System packages (pinned to Debian bookworm):
udev, usbutils, minicom, picocompandoc, texlive-xetex (+ recommended fonts and latex),
lmodern, graphvizBoard platforms (baked into the image, pinned) — [email protected] and
[email protected]: the ESP32 and AVR toolchains ship inside the image, so the
container is fully self-contained with no first-run download.
The vscode user is in the dialout and plugdev groups for USB serial access.
latest — most recent build from mainX.Y.Z — semantic version (see the image changelog)YYYY.MM.DD — build datesha-<short> — exact source commitlinux/amd64 and linux/arm64.
As a dev container (recommended) — reference it in .devcontainer/devcontainer.json:
{
"image": "benthebuilder/learn-iot-workshop:latest"
}
Or pull it directly:
docker pull benthebuilder/learn-iot-workshop:latest
Every layer is pinned: the base image by digest, apt packages by exact version,
and Python packages by version. apt pins track Debian bookworm — if a point
release supersedes a pinned version, bump it in docker-build/Dockerfile
(apt-cache policy <pkg>).
See the source repository for license and contribution details.
Content type
Image
Digest
sha256:181df4d8e…
Size
1.1 GB
Last updated
about 1 month ago
docker pull benthebuilder/learn-iot-workshop