This repository contains a collection of cross-compilation toolchains packaged as Docker images.
Each image provides a ready-to-use compiler and related tools for retrocomputing, embedded, or bare‑metal development.
All images are published under the wischner namespace on Docker Hub.
Tip: Pin specific tags (e.g.
:1.0.3) instead of:latestto get repeatable builds.
This repository is actively developed. Next steps:
- Improve the repository’s Scout health score.
- Stabilize the ARM (
gcc-arm-none-eabi) and m68k packages. - The Z80 packages (
sdcc-z80,sdcc-z80-zx-spectrum) are stable today. - After stabilization, all images will be released as
2.0.0.
-
GCC ARM (arm-none-eabi)
Alpine-native ARM bare‑metal GCC/G++ (newlib),gdb-multiarch, and OpenOCD.
Cross‑compile and debug Cortex‑M (and other ARM MCUs) in one image. -
GCC ARM for Raspberry Pi Pico / Pico W
Extends the base ARM image with the Pico SDK,pico-extras, and host toolspioasm+picotool.
Turn‑key RP2040 development over SWD (OpenOCD) or BOOTSEL USB (picotool). -
SDCC Z80
Small Device C Compiler (Z80 backend) plusuCsimZ80 simulator.
Lean Z80 C toolchain for classic 8‑bit targets. -
SDCC Z80 – ZX Spectrum
Z80 toolchain variant tailored for ZX Spectrum builds.
Convenient defaults/structure for Spectrum projects. -
GCC m68k
GCC/binutils cross‑compiler targetingm68k-elf.
Develop for classic Motorola 68k systems (e.g., Atari ST, Amiga).
Each image mounts your current working directory into /work inside the container.
docker run --rm -it -v "$(pwd)":/work -w /work wischner/gcc-arm-none-eabi:1.0.3 arm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -o app.elf app.c# Interactive shell (with USB passthrough for flashing/debug)
docker run --rm -it --privileged -v /dev/bus/usb:/dev/bus/usb -v "$(pwd)":/work -w /work wischner/gcc-arm-none-eabi-rpi-pico:1.0.2 bash
# Build a project (SDK baked at /opt/pico-sdk)
cmake -S . -B build -DPICO_SDK_PATH=/opt/pico-sdk -DPICO_BOARD=pico_w
cmake --build build -jdocker run --rm -it -v "$(pwd)":/work -w /work wischner/sdcc-z80:latest sdcc -mz80 -o hello.ihx hello.cdocker run --rm -it -v "$(pwd)":/work -w /work wischner/gcc-m68k:latest m68k-elf-gcc -o hello.elf hello.cA generic Makefile auto‑discovers subfolders with a Dockerfile and builds/pushes them.
List detected toolchains:
make listBuild all (tags :latest and :${IMG_VER}):
make build-allPush all to Docker Hub (override org/version as needed):
make push-all ORG=wischner IMG_VER=1.0.3Per‑toolchain build arguments can be placed in <toolchain>/build.args (one KEY=VAL per line).
They are passed automatically as --build-arg KEY=VAL during docker build.
When you rebuild a base image, remember to rebuild all derived images that use
FROMon that base tag.
Issues and PRs are welcome. Please:
- Keep images minimal and reproducible.
- Pin upstream versions in
build.argswhere possible. - Document any platform‑specific helpers in the toolchain README.
Each image bundles open‑source components under their respective licenses (GPL, LGPL, etc.).
See individual toolchain folders for details. The repository content is © Wischner Ltd., provided under a permissive license unless otherwise noted.