What
Create a Dockerfile and docker-compose.yml so contributors can build and test without installing PlatformIO locally.
Why
Setting up PlatformIO, Python, and the ARM toolchain is the #1 friction point for new contributors. A Docker image eliminates this:
docker compose run build — builds firmware
docker compose run test — runs unit tests
- Works identically on Linux, macOS, and Windows
How
- Create
Dockerfile based on python:3.11-slim:
FROM python:3.11-slim
RUN pip install platformio
RUN pio pkg install --global --platform https://github.com/maxgerhardt/platform-raspberrypi.git
WORKDIR /workspace
- Create
docker-compose.yml:
services:
build:
build: .
volumes: [".:/workspace"]
command: pio run -e pico_w_release
test:
build: .
volumes: [".:/workspace"]
command: pio test -e native
- Add a short section to
CONTRIBUTING.md with Docker instructions
- Verify:
docker compose run build passes, docker compose run test passes
Acceptance
References
CONTRIBUTING.md — where setup docs live
platformio.ini — build environments
What
Create a
Dockerfileanddocker-compose.ymlso contributors can build and test without installing PlatformIO locally.Why
Setting up PlatformIO, Python, and the ARM toolchain is the #1 friction point for new contributors. A Docker image eliminates this:
docker compose run build— builds firmwaredocker compose run test— runs unit testsHow
Dockerfilebased onpython:3.11-slim:docker-compose.yml:CONTRIBUTING.mdwith Docker instructionsdocker compose run buildpasses,docker compose run testpassesAcceptance
Dockerfileat repo rootdocker-compose.ymlat repo root withbuildandtestservicesCONTRIBUTING.mdupdated with Docker quick startdocker compose run testpasses on a clean checkoutReferences
CONTRIBUTING.md— where setup docs liveplatformio.ini— build environments