Sign inSign up

benthebuilder/learn-iot-workshop

By benthebuilder

•Updated about 1 month ago

Image
0

178

benthebuilder/learn-iot-workshop repository overview

⁠learn-iot-workshop dev container

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.

⁠Purpose

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.

⁠What's included

Base: mcr.microsoft.com/devcontainers/python:3.12-bookworm, pinned by digest.

Python 3.12 tooling (pinned in requirements.txt):

ToolVersionPurpose
PlatformIO Core6.1.16Build/upload firmware for ESP32 and AVR
esptool4.8.1Flash ESP8266/ESP32 over serial
pyserial3.5Serial port access
Adafruit Blinka8.51.0CircuitPython libraries on Linux/Pi
paho-mqtt2.1.0MQTT messaging
gpiozero2.0.1Raspberry Pi GPIO
requests2.32.4HTTP client
ruff / black / pytest0.8.6 / 24.10.0 / 8.3.4Lint, format, test

System packages (pinned to Debian bookworm):

  • USB serial: udev, usbutils, minicom, picocom
  • Docs and diagrams: pandoc, texlive-xetex (+ recommended fonts and latex), lmodern, graphviz

Board 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.

⁠Supported tags

  • latest — most recent build from main
  • X.Y.Z — semantic version (see the image changelog)
  • YYYY.MM.DD — build date
  • sha-<short> — exact source commit

⁠Architectures

linux/amd64 and linux/arm64.

⁠Usage

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

⁠Reproducibility

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>).

⁠License

See the source repository for license and contribution details.

Tag summary

Content type

Image

Digest

sha256:181df4d8e…

Size

1.1 GB

Last updated

about 1 month ago

docker pull benthebuilder/learn-iot-workshop