Skip to content

Containers

One image per robot family, python:3.12-slim, multi-arch (amd64 and arm64 for Jetson and Raspberry Pi), strands-robots doctor as the health check.

image extras device
ghcr.io/cagataycali/strands-robots-base sim,mesh none
ghcr.io/cagataycali/strands-robots-so101 +feetech --device /dev/ttyACM0
ghcr.io/cagataycali/strands-robots-g1 +unitree --network host for DDS
ghcr.io/cagataycali/strands-robots-microduck +microduck -v /run/robotd.sock:/run/robotd.sock

The entrypoint is strands-robots, so the arguments are the subcommand:

docker run --rm -it ghcr.io/cagataycali/strands-robots-base list
docker run --rm -it --device /dev/ttyACM0 ghcr.io/cagataycali/strands-robots-so101 \
    observe so101 --mode real --port /dev/ttyACM0

Build locally, from a clone:

docker build -f containers/base/Dockerfile -t strands-robots-base .
docker build -f containers/so101/Dockerfile --build-arg BASE=strands-robots-base -t strands-robots-so101 .

docker buildx build --platform linux/amd64,linux/arm64 builds both architectures. The Dockerfiles are in containers/; containers.yml publishes them on every tag.